diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po
index aab267afec..d32ffdd033 100644
--- a/InvenTree/locale/de/LC_MESSAGES/django.po
+++ b/InvenTree/locale/de/LC_MESSAGES/django.po
@@ -1,10 +1,10 @@
-#: templates/js/translated/order.js:2090
+#: templates/js/translated/order.js:2178
msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-03-01 13:34+0000\n"
-"PO-Revision-Date: 2022-03-01 22:47\n"
+"POT-Creation-Date: 2022-03-07 04:31+0000\n"
+"PO-Revision-Date: 2022-03-07 04:47\n"
"Last-Translator: \n"
"Language-Team: German\n"
"Language: de_DE\n"
@@ -86,7 +86,7 @@ msgid "Duplicate serial: {sn}"
msgstr "Doppelte Seriennummer: {sn}"
#: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435
-#: stock/views.py:1101
+#: stock/views.py:983
msgid "Invalid quantity provided"
msgstr "Keine gültige Menge"
@@ -114,100 +114,100 @@ msgstr "Keine Seriennummern gefunden"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Anzahl der eindeutigen Seriennummern ({s}) muss mit der Anzahl ({q}) übereinstimmen"
-#: InvenTree/models.py:176
+#: InvenTree/models.py:185
msgid "Missing file"
msgstr "Fehlende Datei"
-#: InvenTree/models.py:177
+#: InvenTree/models.py:186
msgid "Missing external link"
msgstr "Fehlender externer Link"
-#: InvenTree/models.py:188 stock/models.py:2071
+#: InvenTree/models.py:197 stock/models.py:2123
#: templates/js/translated/attachment.js:119
msgid "Attachment"
msgstr "Anhang"
-#: InvenTree/models.py:189
+#: InvenTree/models.py:198
msgid "Select file to attach"
msgstr "Datei zum Anhängen auswählen"
-#: InvenTree/models.py:195 company/models.py:131 company/models.py:348
+#: InvenTree/models.py:204 company/models.py:131 company/models.py:348
#: company/models.py:564 order/models.py:127 part/models.py:860
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1346
+#: templates/js/translated/company.js:829 templates/js/translated/part.js:1347
msgid "Link"
msgstr "Link"
-#: InvenTree/models.py:196 build/models.py:330 part/models.py:861
-#: stock/models.py:566
+#: InvenTree/models.py:205 build/models.py:332 part/models.py:861
+#: stock/models.py:618
msgid "Link to external URL"
msgstr "Link zu einer externen URL"
-#: InvenTree/models.py:199 templates/js/translated/attachment.js:163
+#: InvenTree/models.py:208 templates/js/translated/attachment.js:163
msgid "Comment"
msgstr "Kommentar"
-#: InvenTree/models.py:199
+#: InvenTree/models.py:208
msgid "File comment"
msgstr "Datei-Kommentar"
-#: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1277
+#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1277
#: common/models.py:1278 common/models.py:1506 common/models.py:1507
-#: part/models.py:2303 part/models.py:2323
+#: part/models.py:2317 part/models.py:2337
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2817
+#: templates/js/translated/stock.js:2773
msgid "User"
msgstr "Benutzer"
-#: InvenTree/models.py:209
+#: InvenTree/models.py:218
msgid "upload date"
msgstr "Hochladedatum"
-#: InvenTree/models.py:232
+#: InvenTree/models.py:241
msgid "Filename must not be empty"
msgstr "Dateiname darf nicht leer sein"
-#: InvenTree/models.py:255
+#: InvenTree/models.py:264
msgid "Invalid attachment directory"
msgstr "Ungültiges Verzeichnis für Anhang"
-#: InvenTree/models.py:265
+#: InvenTree/models.py:274
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Dateiname enthält ungültiges Zeichen '{c}'"
-#: InvenTree/models.py:268
+#: InvenTree/models.py:277
msgid "Filename missing extension"
msgstr "Dateiendung fehlt"
-#: InvenTree/models.py:275
+#: InvenTree/models.py:284
msgid "Attachment with this filename already exists"
msgstr "Anhang mit diesem Dateinamen bereits vorhanden"
-#: InvenTree/models.py:282
+#: InvenTree/models.py:291
msgid "Error renaming file"
msgstr "Fehler beim Umbenennen"
-#: InvenTree/models.py:317
+#: InvenTree/models.py:326
msgid "Invalid choice"
msgstr "Ungültige Auswahl"
-#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1492
+#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1492
#: company/models.py:415 label/models.py:112 part/models.py:804
-#: part/models.py:2487 plugin/models.py:40 report/models.py:181
+#: part/models.py:2501 plugin/models.py:40 report/models.py:181
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:48
#: templates/InvenTree/settings/plugin.html:125
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:319
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:567
-#: templates/js/translated/part.js:706 templates/js/translated/part.js:1653
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/company.js:641 templates/js/translated/part.js:568
+#: templates/js/translated/part.js:707 templates/js/translated/part.js:1654
+#: templates/js/translated/stock.js:2573
msgid "Name"
msgstr "Name"
-#: InvenTree/models.py:340 build/models.py:207
+#: InvenTree/models.py:349 build/models.py:209
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
@@ -219,28 +219,28 @@ msgstr "Name"
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:92
#: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:765
-#: templates/js/translated/build.js:1920 templates/js/translated/company.js:345
+#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763
+#: templates/js/translated/build.js:1973 templates/js/translated/company.js:345
#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:911
-#: templates/js/translated/order.js:1105 templates/js/translated/order.js:1366
-#: templates/js/translated/part.js:626 templates/js/translated/part.js:1021
-#: templates/js/translated/part.js:1106 templates/js/translated/part.js:1276
-#: templates/js/translated/part.js:1672 templates/js/translated/part.js:1741
-#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2446
-#: templates/js/translated/stock.js:2629 templates/js/translated/stock.js:2667
+#: templates/js/translated/company.js:840 templates/js/translated/order.js:971
+#: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454
+#: templates/js/translated/part.js:627 templates/js/translated/part.js:1022
+#: templates/js/translated/part.js:1107 templates/js/translated/part.js:1277
+#: templates/js/translated/part.js:1673 templates/js/translated/part.js:1742
+#: templates/js/translated/stock.js:1656 templates/js/translated/stock.js:2402
+#: templates/js/translated/stock.js:2585 templates/js/translated/stock.js:2623
msgid "Description"
msgstr "Beschreibung"
-#: InvenTree/models.py:341
+#: InvenTree/models.py:350
msgid "Description (optional)"
msgstr "Beschreibung (optional)"
-#: InvenTree/models.py:349
+#: InvenTree/models.py:358
msgid "parent"
msgstr "Eltern"
-#: InvenTree/serializers.py:65 part/models.py:2805
+#: InvenTree/serializers.py:65 part/models.py:2820
msgid "Must be a valid number"
msgstr "Muss eine gültige Nummer sein"
@@ -294,87 +294,87 @@ msgstr "Erforderliche Spalte '{name}' fehlt"
msgid "Duplicate column: '{col}'"
msgstr "Doppelte Spalte: '{col}'"
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:665
msgid "German"
msgstr "Deutsch"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:666
msgid "Greek"
msgstr "Griechisch"
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:667
msgid "English"
msgstr "Englisch"
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:668
msgid "Spanish"
msgstr "Spanisch"
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:669
msgid "Spanish (Mexican)"
msgstr "Spanisch (Mexikanisch)"
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:670
msgid "French"
msgstr "Französisch"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:671
msgid "Hebrew"
msgstr "Hebräisch"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:672
msgid "Hungarian"
msgstr "Ungarisch"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:673
msgid "Italian"
msgstr "Italienisch"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:674
msgid "Japanese"
msgstr "Japanisch"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:675
msgid "Korean"
msgstr "Koreanisch"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:676
msgid "Dutch"
msgstr "Niederländisch"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:677
msgid "Norwegian"
msgstr "Norwegisch"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:678
msgid "Polish"
msgstr "Polnisch"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:679
msgid "Portugese"
msgstr "Portugiesisch"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:680
msgid "Russian"
msgstr "Russisch"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:681
msgid "Swedish"
msgstr "Schwedisch"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:682
msgid "Thai"
msgstr "Thailändisch"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:683
msgid "Turkish"
msgstr "Türkisch"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:684
msgid "Vietnamese"
msgstr "Vietnamesisch"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:685
msgid "Chinese"
msgstr "Chinesisch"
@@ -421,7 +421,7 @@ msgid "Returned"
msgstr "Zurückgegeben"
#: InvenTree/status_codes.py:143 order/models.py:997
-#: templates/js/translated/order.js:2097 templates/js/translated/order.js:2394
+#: templates/js/translated/order.js:2185 templates/js/translated/order.js:2482
msgid "Shipped"
msgstr "Versendet"
@@ -501,7 +501,7 @@ msgstr "Vom übergeordneten Element geteilt"
msgid "Split child item"
msgstr "Unterobjekt geteilt"
-#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2204
+#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2160
msgid "Merged stock items"
msgstr "Lagerartikel zusammengeführt"
@@ -593,43 +593,43 @@ msgstr "Passwörter stimmen nicht überein"
msgid "System Information"
msgstr "Systeminformationen"
-#: barcodes/api.py:54 barcodes/api.py:152
+#: barcodes/api.py:55 barcodes/api.py:156
msgid "Must provide barcode_data parameter"
msgstr "barcode_data Parameter angeben"
-#: barcodes/api.py:128
+#: barcodes/api.py:132
msgid "No match found for barcode data"
msgstr "Keine Treffer für Barcode"
-#: barcodes/api.py:130
+#: barcodes/api.py:134
msgid "Match found for barcode data"
msgstr "Treffer für Barcode gefunden"
-#: barcodes/api.py:155
+#: barcodes/api.py:159
msgid "Must provide stockitem parameter"
msgstr "Lagerartikel-Parameter muss angegeben werden"
-#: barcodes/api.py:162
+#: barcodes/api.py:166
msgid "No matching stock item found"
msgstr "Keine passende Lagerartikel gefunden"
-#: barcodes/api.py:193
+#: barcodes/api.py:197
msgid "Barcode already matches Stock Item"
msgstr "Barcode entspricht bereits einem Lagerartikel"
-#: barcodes/api.py:197
+#: barcodes/api.py:201
msgid "Barcode already matches Stock Location"
msgstr "Barcode entspricht bereits Lagerort"
-#: barcodes/api.py:201
+#: barcodes/api.py:205
msgid "Barcode already matches Part"
msgstr "Barcode entspricht bereits Teil"
-#: barcodes/api.py:207 barcodes/api.py:219
+#: barcodes/api.py:211 barcodes/api.py:223
msgid "Barcode hash already matches Stock Item"
msgstr "Barcode-Hash entspricht bereits einem Lagerartikel"
-#: barcodes/api.py:225
+#: barcodes/api.py:229
msgid "Barcode associated with Stock Item"
msgstr "Barcode Lagerartikel zugeordnet"
@@ -641,18 +641,18 @@ msgstr "Abbruch bestätigen"
msgid "Confirm build cancellation"
msgstr "Bauabbruch bestätigen"
-#: build/models.py:133
+#: build/models.py:135
msgid "Invalid choice for parent build"
msgstr "Ungültige Wahl für übergeordneten Bauauftrag"
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:139 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:676 templates/js/translated/stock.js:2422
+#: templates/js/translated/build.js:677 templates/js/translated/stock.js:2378
msgid "Build Order"
msgstr "Bauauftrag"
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:140 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:92
#: order/templates/order/so_sidebar.html:13
@@ -662,41 +662,41 @@ msgstr "Bauauftrag"
msgid "Build Orders"
msgstr "Bauaufträge"
-#: build/models.py:198
+#: build/models.py:200
msgid "Build Order Reference"
msgstr "Bauauftragsreferenz"
-#: build/models.py:199 order/models.py:213 order/models.py:563
-#: order/models.py:843 part/models.py:2716
+#: build/models.py:201 order/models.py:213 order/models.py:563
+#: order/models.py:843 part/models.py:2731
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:772 templates/js/translated/build.js:1401
-#: templates/js/translated/order.js:1136 templates/js/translated/order.js:2261
+#: templates/js/translated/bom.js:770 templates/js/translated/build.js:1402
+#: templates/js/translated/order.js:1223 templates/js/translated/order.js:2349
msgid "Reference"
msgstr "Referenz"
-#: build/models.py:210
+#: build/models.py:212
msgid "Brief description of the build"
msgstr "Kurze Beschreibung des Baus"
-#: build/models.py:219 build/templates/build/build_base.html:169
+#: build/models.py:221 build/templates/build/build_base.html:169
#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr "Eltern-Bauauftrag"
-#: build/models.py:220
+#: build/models.py:222
msgid "BuildOrder to which this build is allocated"
msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist"
-#: build/models.py:225 build/templates/build/build_base.html:77
+#: build/models.py:227 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
#: order/models.py:912 order/models.py:986
#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359
-#: part/models.py:2249 part/models.py:2265 part/models.py:2284
-#: part/models.py:2301 part/models.py:2403 part/models.py:2525
-#: part/models.py:2615 part/models.py:2691 part/models.py:2998
-#: part/serializers.py:666 part/templates/part/part_app_base.html:8
+#: part/models.py:2263 part/models.py:2279 part/models.py:2298
+#: part/models.py:2315 part/models.py:2417 part/models.py:2539
+#: part/models.py:2629 part/models.py:2706 part/models.py:3013
+#: part/serializers.py:669 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: part/templates/part/upload_bom.html:52
@@ -707,231 +707,231 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist"
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551
-#: templates/js/translated/bom.js:730 templates/js/translated/build.js:902
-#: templates/js/translated/build.js:1270 templates/js/translated/build.js:1655
-#: templates/js/translated/build.js:1925 templates/js/translated/company.js:492
+#: templates/js/translated/bom.js:728 templates/js/translated/build.js:903
+#: templates/js/translated/build.js:1271 templates/js/translated/build.js:1666
+#: templates/js/translated/build.js:1978 templates/js/translated/company.js:492
#: templates/js/translated/company.js:749 templates/js/translated/order.js:84
-#: templates/js/translated/order.js:651 templates/js/translated/order.js:1090
-#: templates/js/translated/order.js:1693 templates/js/translated/order.js:2050
-#: templates/js/translated/order.js:2245 templates/js/translated/part.js:1006
-#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1254
-#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1657
-#: templates/js/translated/stock.js:2892 templates/js/translated/stock.js:2991
+#: templates/js/translated/order.js:711 templates/js/translated/order.js:1177
+#: templates/js/translated/order.js:1781 templates/js/translated/order.js:2138
+#: templates/js/translated/order.js:2333 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1088 templates/js/translated/part.js:1255
+#: templates/js/translated/stock.js:518 templates/js/translated/stock.js:683
+#: templates/js/translated/stock.js:890 templates/js/translated/stock.js:1613
+#: templates/js/translated/stock.js:2848 templates/js/translated/stock.js:2947
msgid "Part"
msgstr "Teil"
-#: build/models.py:233
+#: build/models.py:235
msgid "Select part to build"
msgstr "Teil für den Bauauftrag wählen"
-#: build/models.py:238
+#: build/models.py:240
msgid "Sales Order Reference"
msgstr "Auftrag Referenz"
-#: build/models.py:242
+#: build/models.py:244
msgid "SalesOrder to which this build is allocated"
msgstr "Bestellung, die diesem Bauauftrag zugewiesen ist"
-#: build/models.py:247 templates/js/translated/build.js:1643
-#: templates/js/translated/order.js:1681
+#: build/models.py:249 build/serializers.py:729
+#: templates/js/translated/build.js:1654 templates/js/translated/order.js:1769
msgid "Source Location"
msgstr "Quell-Lagerort"
-#: build/models.py:251
+#: build/models.py:253
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr "Entnahme-Lagerort für diesen Bauauftrag wählen (oder leer lassen für einen beliebigen Lagerort)"
-#: build/models.py:256
+#: build/models.py:258
msgid "Destination Location"
msgstr "Ziel-Lagerort"
-#: build/models.py:260
+#: build/models.py:262
msgid "Select location where the completed items will be stored"
msgstr "Lagerort an dem fertige Objekte gelagert werden auswählen"
-#: build/models.py:264
+#: build/models.py:266
msgid "Build Quantity"
msgstr "Bau-Anzahl"
-#: build/models.py:267
+#: build/models.py:269
msgid "Number of stock items to build"
msgstr "Anzahl der zu bauenden Lagerartikel"
-#: build/models.py:271
+#: build/models.py:273
msgid "Completed items"
msgstr "Fertiggestellte Teile"
-#: build/models.py:273
+#: build/models.py:275
msgid "Number of stock items which have been completed"
msgstr "Anzahl der fertigen Lagerartikel"
-#: build/models.py:277 part/templates/part/part_base.html:234
+#: build/models.py:279 part/templates/part/part_base.html:234
msgid "Build Status"
msgstr "Bauauftrags-Status"
-#: build/models.py:281
+#: build/models.py:283
msgid "Build status code"
msgstr "Bau-Statuscode"
-#: build/models.py:285 build/serializers.py:218 order/serializers.py:272
-#: stock/models.py:570 templates/js/translated/order.js:513
+#: build/models.py:287 build/serializers.py:218 order/serializers.py:272
+#: stock/models.py:622 templates/js/translated/order.js:573
msgid "Batch Code"
msgstr "Losnummer"
-#: build/models.py:289 build/serializers.py:219
+#: build/models.py:291 build/serializers.py:219
msgid "Batch code for this build output"
msgstr "Losnummer für dieses Endprodukt"
-#: build/models.py:292 order/models.py:129 part/models.py:999
-#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1379
+#: build/models.py:294 order/models.py:129 part/models.py:999
+#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1467
msgid "Creation Date"
msgstr "Erstelldatum"
-#: build/models.py:296 order/models.py:585
+#: build/models.py:298 order/models.py:585
msgid "Target completion date"
msgstr "geplantes Fertigstellungsdatum"
-#: build/models.py:297
+#: build/models.py:299
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Zieldatum für Bauauftrag-Fertigstellung."
-#: build/models.py:300 order/models.py:255
-#: templates/js/translated/build.js:2002
+#: build/models.py:302 order/models.py:255
+#: templates/js/translated/build.js:2055
msgid "Completion Date"
msgstr "Fertigstellungsdatum"
-#: build/models.py:306
+#: build/models.py:308
msgid "completed by"
msgstr "Fertiggestellt von"
-#: build/models.py:314 templates/js/translated/build.js:1970
+#: build/models.py:316 templates/js/translated/build.js:2023
msgid "Issued by"
msgstr "Aufgegeben von"
-#: build/models.py:315
+#: build/models.py:317
msgid "User who issued this build order"
msgstr "Nutzer der diesen Bauauftrag erstellt hat"
-#: build/models.py:323 build/templates/build/build_base.html:190
+#: build/models.py:325 build/templates/build/build_base.html:190
#: build/templates/build/detail.html:116 order/models.py:143
#: order/templates/order/order_base.html:170
#: order/templates/order/sales_order_base.html:182 part/models.py:1003
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1982 templates/js/translated/order.js:945
+#: templates/js/translated/build.js:2035 templates/js/translated/order.js:1005
msgid "Responsible"
msgstr "Verantwortlicher Benutzer"
-#: build/models.py:324
+#: build/models.py:326
msgid "User responsible for this build order"
msgstr "Nutzer der für diesen Bauauftrag zuständig ist"
-#: build/models.py:329 build/templates/build/detail.html:102
+#: build/models.py:331 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:564
+#: part/templates/part/part_base.html:354 stock/models.py:616
#: stock/templates/stock/item_base.html:352
msgid "External Link"
msgstr "Externer Link"
-#: build/models.py:334 build/serializers.py:381
+#: build/models.py:336 build/serializers.py:381
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
#: order/models.py:147 order/models.py:845 order/models.py:1107
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/models.py:988
-#: part/templates/part/detail.html:146 part/templates/part/part_sidebar.html:57
+#: part/templates/part/detail.html:141 part/templates/part/part_sidebar.html:57
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:137 stock/forms.py:171 stock/models.py:636
-#: stock/models.py:1971 stock/models.py:2077 stock/serializers.py:332
+#: stock/forms.py:137 stock/forms.py:171 stock/models.py:688
+#: stock/models.py:2023 stock/models.py:2129 stock/serializers.py:332
#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:936
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1257
-#: templates/js/translated/order.js:1562 templates/js/translated/order.js:2419
-#: templates/js/translated/stock.js:1344 templates/js/translated/stock.js:1935
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934
+#: templates/js/translated/company.js:845 templates/js/translated/order.js:1344
+#: templates/js/translated/order.js:1650 templates/js/translated/order.js:2507
+#: templates/js/translated/stock.js:1300 templates/js/translated/stock.js:1891
msgid "Notes"
msgstr "Notizen"
-#: build/models.py:335
+#: build/models.py:337
msgid "Extra build notes"
msgstr "Extranotizen für den Bauauftrag"
-#: build/models.py:748
+#: build/models.py:750
msgid "No build output specified"
msgstr "kein Endprodukt angegeben"
-#: build/models.py:751
+#: build/models.py:753
msgid "Build output is already completed"
msgstr "Endprodukt bereits hergstellt"
-#: build/models.py:754
+#: build/models.py:756
msgid "Build output does not match Build Order"
msgstr "Endprodukt stimmt nicht mit dem Bauauftrag überein"
-#: build/models.py:1060
+#: build/models.py:1162
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "Bauauftragsposition muss ein Endprodukt festlegen, da der übergeordnete Teil verfolgbar ist"
-#: build/models.py:1069
+#: build/models.py:1171
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr "Zugewiesene Menge ({q}) darf nicht verfügbare Menge ({a}) übersteigen"
-#: build/models.py:1079
+#: build/models.py:1181
msgid "Stock item is over-allocated"
msgstr "BestandObjekt ist zu oft zugewiesen"
-#: build/models.py:1085 order/models.py:1225
+#: build/models.py:1187 order/models.py:1225
msgid "Allocation quantity must be greater than zero"
msgstr "Reserviermenge muss größer null sein"
-#: build/models.py:1091
+#: build/models.py:1193
msgid "Quantity must be 1 for serialized stock"
msgstr "Anzahl muss 1 für Objekte mit Seriennummer sein"
-#: build/models.py:1148
+#: build/models.py:1250
msgid "Selected stock item not found in BOM"
msgstr "Ausgewähltes Bestands-Objekt nicht in Stückliste für Teil '{p}' gefunden"
-#: build/models.py:1217 stock/templates/stock/item_base.html:324
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898
+#: build/models.py:1319 stock/templates/stock/item_base.html:324
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1951
#: templates/navbar.html:35
msgid "Build"
msgstr "Bauauftrag"
-#: build/models.py:1218
+#: build/models.py:1320
msgid "Build to allocate parts"
msgstr "Bauauftrag starten um Teile zuzuweisen"
-#: build/models.py:1234 build/serializers.py:576 order/serializers.py:783
+#: build/models.py:1336 build/serializers.py:576 order/serializers.py:783
#: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635
#: stock/serializers.py:753 stock/templates/stock/item_base.html:9
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:346
-#: templates/js/translated/build.js:687 templates/js/translated/build.js:692
-#: templates/js/translated/build.js:1657 templates/js/translated/build.js:2050
-#: templates/js/translated/order.js:85 templates/js/translated/order.js:1694
-#: templates/js/translated/order.js:1949 templates/js/translated/order.js:1954
-#: templates/js/translated/order.js:2057 templates/js/translated/order.js:2147
-#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728
-#: templates/js/translated/stock.js:2753
+#: templates/js/translated/build.js:688 templates/js/translated/build.js:693
+#: templates/js/translated/build.js:1668 templates/js/translated/build.js:2103
+#: templates/js/translated/order.js:85 templates/js/translated/order.js:1782
+#: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:2235
+#: templates/js/translated/stock.js:519 templates/js/translated/stock.js:684
+#: templates/js/translated/stock.js:2709
msgid "Stock Item"
msgstr "Lagerartikel"
-#: build/models.py:1235
+#: build/models.py:1337
msgid "Source stock item"
msgstr "Quell-Lagerartikel"
-#: build/models.py:1247 build/serializers.py:188
+#: build/models.py:1349 build/serializers.py:188
#: build/templates/build/build_base.html:82
#: build/templates/build/detail.html:35 common/models.py:1317
#: company/forms.py:42 company/templates/company/supplier_part.html:251
#: order/models.py:836 order/models.py:1265 order/serializers.py:903
#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144
-#: part/forms.py:160 part/forms.py:176 part/models.py:2707
-#: part/templates/part/detail.html:1008 part/templates/part/detail.html:1094
+#: part/forms.py:160 part/forms.py:176 part/models.py:2722
+#: part/templates/part/detail.html:994 part/templates/part/detail.html:1080
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_build_order_base.html:114
@@ -943,32 +943,32 @@ msgstr "Quell-Lagerartikel"
#: stock/templates/stock/item_base.html:176
#: stock/templates/stock/item_base.html:241
#: stock/templates/stock/item_base.html:249
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:780
-#: templates/js/translated/build.js:375 templates/js/translated/build.js:523
-#: templates/js/translated/build.js:714 templates/js/translated/build.js:911
-#: templates/js/translated/build.js:921 templates/js/translated/build.js:1297
-#: templates/js/translated/build.js:1658
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778
+#: templates/js/translated/build.js:376 templates/js/translated/build.js:524
+#: templates/js/translated/build.js:715 templates/js/translated/build.js:912
+#: templates/js/translated/build.js:922 templates/js/translated/build.js:1298
+#: templates/js/translated/build.js:1669
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:101 templates/js/translated/order.js:1142
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:1976
-#: templates/js/translated/order.js:2064 templates/js/translated/order.js:2153
-#: templates/js/translated/order.js:2267 templates/js/translated/part.js:906
-#: templates/js/translated/part.js:1884 templates/js/translated/part.js:2007
-#: templates/js/translated/part.js:2085 templates/js/translated/stock.js:391
-#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758
-#: templates/js/translated/stock.js:2802 templates/js/translated/stock.js:2904
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:1229
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:2064
+#: templates/js/translated/order.js:2152 templates/js/translated/order.js:2241
+#: templates/js/translated/order.js:2355 templates/js/translated/part.js:907
+#: templates/js/translated/part.js:1885 templates/js/translated/part.js:2008
+#: templates/js/translated/part.js:2086 templates/js/translated/stock.js:390
+#: templates/js/translated/stock.js:544 templates/js/translated/stock.js:714
+#: templates/js/translated/stock.js:2758 templates/js/translated/stock.js:2860
msgid "Quantity"
msgstr "Anzahl"
-#: build/models.py:1248
+#: build/models.py:1350
msgid "Stock quantity to allocate to build"
msgstr "Anzahl an Lagerartikel dem Bauauftrag zuweisen"
-#: build/models.py:1256
+#: build/models.py:1358
msgid "Install into"
msgstr "Installiere in"
-#: build/models.py:1257
+#: build/models.py:1359
msgid "Destination stock item"
msgstr "Ziel-Lagerartikel"
@@ -997,8 +997,8 @@ msgid "Enter quantity for build output"
msgstr "Menge der Endprodukte angeben"
#: build/serializers.py:201 build/serializers.py:596 order/models.py:280
-#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:826
-#: stock/models.py:404 stock/models.py:1180 stock/serializers.py:305
+#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:836
+#: stock/models.py:456 stock/models.py:1232 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr "Anzahl muss größer Null sein"
@@ -1012,8 +1012,8 @@ msgstr "Ganzzahl erforderlich da die Stückliste nachverfolgbare Teile enthält"
#: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907
#: stock/forms.py:78 stock/serializers.py:314
-#: templates/js/translated/order.js:524 templates/js/translated/stock.js:238
-#: templates/js/translated/stock.js:392
+#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237
+#: templates/js/translated/stock.js:391
msgid "Serial Numbers"
msgstr "Seriennummer"
@@ -1029,7 +1029,7 @@ msgstr "Seriennummern automatisch zuweisen"
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Benötigte Lagerartikel automatisch mit passenden Seriennummern zuweisen"
-#: build/serializers.py:275 stock/api.py:549
+#: build/serializers.py:275 stock/api.py:551
msgid "The following serial numbers already exist"
msgstr "Folgende Seriennummern existieren bereits"
@@ -1041,13 +1041,13 @@ msgstr "Eine Liste von Endprodukten muss angegeben werden"
#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788
#: stock/serializers.py:1029 stock/templates/stock/item_base.html:292
#: templates/js/translated/barcode.js:384
-#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:699
-#: templates/js/translated/build.js:1309 templates/js/translated/order.js:551
-#: templates/js/translated/order.js:1961 templates/js/translated/order.js:2072
-#: templates/js/translated/order.js:2080 templates/js/translated/order.js:2161
-#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564
-#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936
-#: templates/js/translated/stock.js:1807 templates/js/translated/stock.js:2694
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700
+#: templates/js/translated/build.js:1310 templates/js/translated/order.js:611
+#: templates/js/translated/order.js:2049 templates/js/translated/order.js:2160
+#: templates/js/translated/order.js:2168 templates/js/translated/order.js:2249
+#: templates/js/translated/part.js:179 templates/js/translated/stock.js:520
+#: templates/js/translated/stock.js:685 templates/js/translated/stock.js:892
+#: templates/js/translated/stock.js:1763 templates/js/translated/stock.js:2650
msgid "Location"
msgstr "Lagerort"
@@ -1058,10 +1058,10 @@ msgstr "Lagerort für fertige Endprodukte"
#: build/serializers.py:377 build/templates/build/build_base.html:142
#: build/templates/build/detail.html:63 order/models.py:579
#: order/serializers.py:290 stock/templates/stock/item_base.html:182
-#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1954
-#: templates/js/translated/order.js:656 templates/js/translated/order.js:915
-#: templates/js/translated/order.js:1371 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2771 templates/js/translated/stock.js:2920
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2007
+#: templates/js/translated/order.js:716 templates/js/translated/order.js:975
+#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2727 templates/js/translated/stock.js:2876
msgid "Status"
msgstr "Status"
@@ -1073,7 +1073,7 @@ msgstr "Nicht zugewiesene akzeptieren"
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr "Akzeptieren, dass Lagerartikel diesem Bauauftrag nicht vollständig zugewiesen wurden"
-#: build/serializers.py:445 templates/js/translated/build.js:150
+#: build/serializers.py:445 templates/js/translated/build.js:151
msgid "Required stock has not been fully allocated"
msgstr "Benötigter Bestand wurde nicht vollständig zugewiesen"
@@ -1085,7 +1085,7 @@ msgstr "Unvollständig Zuweisung akzeptieren"
msgid "Accept that the required number of build outputs have not been completed"
msgstr "Akzeptieren, dass die erforderliche Anzahl der Bauaufträge nicht abgeschlossen ist"
-#: build/serializers.py:461 templates/js/translated/build.js:154
+#: build/serializers.py:461 templates/js/translated/build.js:155
msgid "Required build quantity has not been completed"
msgstr "Benötigte Teil-Anzahl wurde noch nicht fertiggestellt"
@@ -1097,8 +1097,8 @@ msgstr "Bauauftrag hat unvollständige Aufbauten"
msgid "No build outputs have been created for this build order"
msgstr "Es wurden keine Endprodukte für diesen Bauauftrag erstellt"
-#: build/serializers.py:501 build/serializers.py:550 part/models.py:2831
-#: part/models.py:2990
+#: build/serializers.py:501 build/serializers.py:550 part/models.py:2846
+#: part/models.py:3005
msgid "BOM Item"
msgstr "Stücklisten-Position"
@@ -1135,6 +1135,26 @@ msgstr "Endprodukt kann bei Zuweisung nicht-verfolgter Teile nicht angegeben wer
msgid "Allocation items must be provided"
msgstr "Zuweisungen müssen angegeben werden"
+#: build/serializers.py:730
+msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
+msgstr ""
+
+#: build/serializers.py:735
+msgid "Interchangeable Stock"
+msgstr ""
+
+#: build/serializers.py:736
+msgid "Stock items in multiple locations can be used interchangeably"
+msgstr ""
+
+#: build/serializers.py:741
+msgid "Substitute Stock"
+msgstr ""
+
+#: build/serializers.py:742
+msgid "Allow allocation of substitute parts"
+msgstr ""
+
#: build/tasks.py:98
msgid "Stock required for build order"
msgstr "Bestand für Bauauftrag erforderlich"
@@ -1206,9 +1226,9 @@ msgstr "Bestand wurde Bauauftrag noch nicht vollständig zugewiesen"
#: order/templates/order/order_base.html:156
#: order/templates/order/sales_order_base.html:163
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1994 templates/js/translated/order.js:932
-#: templates/js/translated/order.js:1204 templates/js/translated/order.js:1387
-#: templates/js/translated/order.js:2330 templates/js/translated/part.js:910
+#: templates/js/translated/build.js:2047 templates/js/translated/order.js:992
+#: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475
+#: templates/js/translated/order.js:2418 templates/js/translated/part.js:911
msgid "Target Date"
msgstr "Zieldatum"
@@ -1230,7 +1250,7 @@ msgstr "Überfällig"
#: build/templates/build/build_base.html:163
#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
#: order/templates/order/sales_order_base.html:170
-#: templates/js/translated/build.js:1940
+#: templates/js/translated/build.js:1993
#: templates/js/translated/table_filters.js:365
msgid "Completed"
msgstr "Fertig"
@@ -1242,7 +1262,7 @@ msgstr "Fertig"
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:286
-#: templates/js/translated/order.js:1326 templates/js/translated/stock.js:2436
+#: templates/js/translated/order.js:1414 templates/js/translated/stock.js:2392
msgid "Sales Order"
msgstr "Auftrag"
@@ -1277,7 +1297,7 @@ msgid "Stock can be taken from any available location."
msgstr "Bestand kann jedem verfügbaren Lagerort entnommen werden."
#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133
-#: templates/js/translated/order.js:657 templates/js/translated/order.js:1246
+#: templates/js/translated/order.js:717 templates/js/translated/order.js:1333
msgid "Destination"
msgstr "Ziel-Lager"
@@ -1285,13 +1305,13 @@ msgstr "Ziel-Lager"
msgid "Destination location not specified"
msgstr "Ziel-Lagerort nicht angegeben"
-#: build/templates/build/detail.html:74 templates/js/translated/build.js:929
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:930
msgid "Allocated Parts"
msgstr "Zugewiesene Teile"
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:310
-#: templates/js/translated/stock.js:1796 templates/js/translated/stock.js:2927
+#: templates/js/translated/stock.js:1752 templates/js/translated/stock.js:2883
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:238
msgid "Batch"
@@ -1300,7 +1320,7 @@ msgstr "Losnummer"
#: build/templates/build/detail.html:127
#: order/templates/order/order_base.html:143
#: order/templates/order/sales_order_base.html:157
-#: templates/js/translated/build.js:1962
+#: templates/js/translated/build.js:2015
msgid "Created"
msgstr "Erstellt"
@@ -1320,7 +1340,7 @@ msgstr "Unter-Bauaufträge"
msgid "Allocate Stock to Build"
msgstr "Bestand Bauauftrag zuweisen"
-#: build/templates/build/detail.html:177 templates/js/translated/build.js:1484
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1485
msgid "Unallocate stock"
msgstr "Bestandszuordnung aufheben"
@@ -1329,111 +1349,119 @@ msgid "Unallocate Stock"
msgstr "Bestandszuordnung aufheben"
#: build/templates/build/detail.html:180
-msgid "Allocate stock to build"
-msgstr "Bestand Bauauftrag zuweisen"
+msgid "Automatically allocate stock to build"
+msgstr ""
-#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
+#: build/templates/build/detail.html:181
+msgid "Auto Allocate"
+msgstr ""
+
+#: build/templates/build/detail.html:183
+msgid "Manually allocate stock to build"
+msgstr ""
+
+#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8
msgid "Allocate Stock"
msgstr "Bestand zuweisen"
-#: build/templates/build/detail.html:184
+#: build/templates/build/detail.html:187
msgid "Order required parts"
msgstr "Benötigte Teile bestellen"
-#: build/templates/build/detail.html:185
+#: build/templates/build/detail.html:188
#: company/templates/company/detail.html:38
#: company/templates/company/detail.html:85 order/views.py:463
-#: part/templates/part/category.html:177
+#: part/templates/part/category.html:174
msgid "Order Parts"
msgstr "Teile bestellen"
-#: build/templates/build/detail.html:197
+#: build/templates/build/detail.html:200
msgid "Untracked stock has been fully allocated for this Build Order"
msgstr "Nicht verfolgter Bestand wurde Bauauftrag vollständig zugewiesen"
-#: build/templates/build/detail.html:201
+#: build/templates/build/detail.html:204
msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr "Nicht verfolgter Bestand wurde Bauauftrag noch nicht vollständig zugewiesen"
-#: build/templates/build/detail.html:208
+#: build/templates/build/detail.html:211
msgid "Allocate selected items"
msgstr "Ausgewählte Positionen zuweisen"
-#: build/templates/build/detail.html:218
+#: build/templates/build/detail.html:221
msgid "This Build Order does not have any associated untracked BOM items"
msgstr "Dieser Bauauftrag hat keine zugeordneten Stücklisten-Einträge"
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:230
msgid "Incomplete Build Outputs"
msgstr "Unfertige Endprodukte"
-#: build/templates/build/detail.html:231
+#: build/templates/build/detail.html:234
msgid "Create new build output"
msgstr "Neues Endprodukt anlegen"
-#: build/templates/build/detail.html:232
+#: build/templates/build/detail.html:235
msgid "New Build Output"
msgstr "Neues Endprodukt"
-#: build/templates/build/detail.html:246
+#: build/templates/build/detail.html:249
msgid "Output Actions"
msgstr "Endproduktaktionen"
-#: build/templates/build/detail.html:250
+#: build/templates/build/detail.html:253
msgid "Complete selected build outputs"
msgstr "Ausgewählte Endprodukt fertigstellen"
-#: build/templates/build/detail.html:251
+#: build/templates/build/detail.html:254
msgid "Complete outputs"
msgstr "Endprodukte fertigstellen"
-#: build/templates/build/detail.html:253
+#: build/templates/build/detail.html:256
msgid "Delete selected build outputs"
msgstr "Ausgewählte Endprodukte löschen"
-#: build/templates/build/detail.html:254
+#: build/templates/build/detail.html:257
msgid "Delete outputs"
msgstr "Endprodukte löschen"
-#: build/templates/build/detail.html:270
+#: build/templates/build/detail.html:273
msgid "Completed Build Outputs"
msgstr "Fertiggestellte Endprodukte"
-#: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19
+#: build/templates/build/detail.html:285 build/templates/build/sidebar.html:19
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:107
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:222
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217
#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:105
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr "Anhänge"
-#: build/templates/build/detail.html:298
+#: build/templates/build/detail.html:301
msgid "Build Notes"
msgstr "Bauauftrags-Notizen"
-#: build/templates/build/detail.html:302 build/templates/build/detail.html:478
-#: company/templates/company/detail.html:188
-#: company/templates/company/detail.html:215
+#: build/templates/build/detail.html:305 build/templates/build/detail.html:481
+#: company/templates/company/detail.html:190
+#: company/templates/company/detail.html:217
#: order/templates/order/purchase_order_detail.html:80
#: order/templates/order/purchase_order_detail.html:108
#: order/templates/order/sales_order_detail.html:127
#: order/templates/order/sales_order_detail.html:186
-#: part/templates/part/detail.html:150 stock/templates/stock/item.html:125
+#: part/templates/part/detail.html:145 stock/templates/stock/item.html:125
#: stock/templates/stock/item.html:223
msgid "Edit Notes"
msgstr "Anmerkungen bearbeiten"
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:519
msgid "Allocation Complete"
msgstr "Zuordnung abgeschlossen"
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:520
msgid "All untracked stock items have been allocated"
msgstr "Alle nicht verfolgten Lagerartikel wurden zugewiesen"
-#: build/templates/build/index.html:18 part/templates/part/detail.html:329
+#: build/templates/build/index.html:18 part/templates/part/detail.html:322
msgid "New Build Order"
msgstr "Neuer Bauauftrag"
@@ -1658,7 +1686,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:732 part/models.py:2527 report/models.py:187
+#: common/models.py:732 part/models.py:2541 report/models.py:187
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:417
msgid "Template"
@@ -1668,7 +1696,7 @@ msgstr "Vorlage"
msgid "Parts are templates by default"
msgstr "Teile sind standardmäßig Vorlagen"
-#: common/models.py:739 part/models.py:951 templates/js/translated/bom.js:1300
+#: common/models.py:739 part/models.py:951 templates/js/translated/bom.js:1305
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:429
msgid "Assembly"
@@ -2243,7 +2271,7 @@ msgstr "Preisstaffelungs Anzahl"
#: common/models.py:1325 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:937 templates/js/translated/part.js:1889
+#: templates/js/translated/part.js:938 templates/js/translated/part.js:1890
msgid "Price"
msgstr "Preis"
@@ -2337,14 +2365,14 @@ msgstr "Wurde die Arbeit an dieser Nachricht abgeschlossen?"
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
-#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:210
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208
#: templates/patterns/wizard/upload.html:35
msgid "Upload File"
msgstr "Datei hochgeladen"
#: common/views.py:94 order/views.py:244
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:211
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:209
#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr "Übereinstimmende Felder"
@@ -2472,7 +2500,7 @@ msgstr "Währung"
msgid "Default currency used for this company"
msgstr "Standard-Währung für diese Firma"
-#: company/models.py:320 company/models.py:535 stock/models.py:508
+#: company/models.py:320 company/models.py:535 stock/models.py:560
#: stock/templates/stock/item_base.html:137 templates/js/translated/bom.js:541
msgid "Base Part"
msgstr "Basisteil"
@@ -2499,8 +2527,8 @@ msgstr "Hersteller auswählen"
#: company/models.py:342 company/templates/company/manufacturer_part.html:96
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1124
-#: templates/js/translated/part.js:245 templates/js/translated/part.js:895
+#: templates/js/translated/company.js:818 templates/js/translated/order.js:1211
+#: templates/js/translated/part.js:245 templates/js/translated/part.js:896
msgid "MPN"
msgstr "MPN"
@@ -2529,8 +2557,8 @@ msgstr "Parametername"
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2064 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1331
+#: stock/models.py:2116 templates/js/translated/company.js:647
+#: templates/js/translated/part.js:716 templates/js/translated/stock.js:1287
msgid "Value"
msgstr "Wert"
@@ -2538,10 +2566,10 @@ msgstr "Wert"
msgid "Parameter value"
msgstr "Parameterwert"
-#: company/models.py:429 part/models.py:945 part/models.py:2495
+#: company/models.py:429 part/models.py:945 part/models.py:2509
#: part/templates/part/part_base.html:288
#: templates/InvenTree/settings/settings.html:324
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:721
+#: templates/js/translated/company.js:653 templates/js/translated/part.js:722
msgid "Units"
msgstr "Einheiten"
@@ -2559,8 +2587,8 @@ msgstr "Verlinktes Herstellerteil muss dasselbe Basisteil referenzieren"
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237
#: part/bom.py:265 stock/templates/stock/item_base.html:376
#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:898
-#: templates/js/translated/part.js:215 templates/js/translated/part.js:863
+#: templates/js/translated/company.js:774 templates/js/translated/order.js:958
+#: templates/js/translated/part.js:215 templates/js/translated/part.js:864
#: templates/js/translated/table_filters.js:388
msgid "Supplier"
msgstr "Zulieferer"
@@ -2570,8 +2598,8 @@ msgid "Select supplier"
msgstr "Zulieferer auswählen"
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1111
-#: templates/js/translated/part.js:226 templates/js/translated/part.js:881
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198
+#: templates/js/translated/part.js:226 templates/js/translated/part.js:882
msgid "SKU"
msgstr "SKU (Lagerbestandseinheit)"
@@ -2592,7 +2620,7 @@ msgid "Supplier part description"
msgstr "Zuliefererbeschreibung des Teils"
#: company/models.py:576 company/templates/company/supplier_part.html:119
-#: part/models.py:2719 part/templates/part/upload_bom.html:59
+#: part/models.py:2734 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409
msgid "Note"
@@ -2607,8 +2635,8 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr "Mindestpreis"
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:532 stock/templates/stock/item_base.html:317
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1931
+#: stock/models.py:584 stock/templates/stock/item_base.html:317
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1887
msgid "Packaging"
msgstr "Verpackungen"
@@ -2676,11 +2704,11 @@ msgid "Download image from URL"
msgstr "Bild von URL herunterladen"
#: company/templates/company/company_base.html:83 order/models.py:574
-#: order/templates/order/sales_order_base.html:115 stock/models.py:551
-#: stock/models.py:552 stock/serializers.py:683
+#: order/templates/order/sales_order_base.html:115 stock/models.py:603
+#: stock/models.py:604 stock/serializers.py:683
#: stock/templates/stock/item_base.html:269
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1348
-#: templates/js/translated/stock.js:2735
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1436
+#: templates/js/translated/stock.js:2691
#: templates/js/translated/table_filters.js:392
msgid "Customer"
msgstr "Kunde"
@@ -2711,7 +2739,7 @@ msgstr "Neues Zuliefererteil anlegen"
#: company/templates/company/detail.html:20
#: company/templates/company/manufacturer_part.html:118
-#: part/templates/part/detail.html:367
+#: part/templates/part/detail.html:360
msgid "New Supplier Part"
msgstr "Neues Zuliefererteil"
@@ -2719,14 +2747,14 @@ msgstr "Neues Zuliefererteil"
#: company/templates/company/detail.html:79
#: company/templates/company/manufacturer_part.html:127
#: company/templates/company/manufacturer_part.html:156
-#: part/templates/part/category.html:171 part/templates/part/detail.html:376
-#: part/templates/part/detail.html:405
+#: part/templates/part/category.html:168 part/templates/part/detail.html:369
+#: part/templates/part/detail.html:398
msgid "Options"
msgstr "Optionen"
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177
+#: part/templates/part/category.html:174
msgid "Order parts"
msgstr "Teile bestellen"
@@ -2748,7 +2776,7 @@ msgstr "Herstellerteile"
msgid "Create new manufacturer part"
msgstr "Neues Herstellerteil anlegen"
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:395
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:388
msgid "New Manufacturer Part"
msgstr "Neues Herstellerteil"
@@ -2762,7 +2790,7 @@ msgstr "Zulieferer-Bestand"
#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:40
+#: part/templates/part/detail.html:80 part/templates/part/part_sidebar.html:40
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
@@ -2784,7 +2812,7 @@ msgstr "Neue Bestellung"
#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:44
+#: part/templates/part/detail.html:103 part/templates/part/part_sidebar.html:44
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
@@ -2802,23 +2830,23 @@ msgid "New Sales Order"
msgstr "Neuer Auftrag"
#: company/templates/company/detail.html:168
-#: templates/js/translated/build.js:1281
+#: templates/js/translated/build.js:1282
msgid "Assigned Stock"
msgstr "Zugeordneter Bestand"
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:186
msgid "Company Notes"
msgstr "Firmenbemerkungen"
-#: company/templates/company/detail.html:384
+#: company/templates/company/detail.html:380
#: company/templates/company/manufacturer_part.html:215
-#: part/templates/part/detail.html:449
+#: part/templates/part/detail.html:442
msgid "Delete Supplier Parts?"
msgstr "Zuliefererteil entfernen?"
-#: company/templates/company/detail.html:385
+#: company/templates/company/detail.html:381
#: company/templates/company/manufacturer_part.html:216
-#: part/templates/part/detail.html:450
+#: part/templates/part/detail.html:443
msgid "All selected supplier parts will be deleted"
msgstr "Alle ausgewählten Zulieferteile werden gelöscht"
@@ -2835,7 +2863,7 @@ msgstr "Hersteller"
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:34
#: company/templates/company/supplier_part.html:159
-#: part/templates/part/detail.html:88 part/templates/part/part_base.html:76
+#: part/templates/part/detail.html:83 part/templates/part/part_base.html:76
msgid "Order part"
msgstr "Teil bestellen"
@@ -2862,14 +2890,14 @@ msgid "Suppliers"
msgstr "Zulieferer"
#: company/templates/company/manufacturer_part.html:129
-#: part/templates/part/detail.html:378
+#: part/templates/part/detail.html:371
msgid "Delete supplier parts"
msgstr "Zuliefererteil entfernen"
#: company/templates/company/manufacturer_part.html:129
#: company/templates/company/manufacturer_part.html:158
#: company/templates/company/manufacturer_part.html:254
-#: part/templates/part/detail.html:378 part/templates/part/detail.html:407
+#: part/templates/part/detail.html:371 part/templates/part/detail.html:400
#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31
#: users/models.py:217
msgid "Delete"
@@ -2878,12 +2906,12 @@ msgstr "Löschen"
#: company/templates/company/manufacturer_part.html:143
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:17
-#: part/templates/part/detail.html:196 part/templates/part/part_sidebar.html:9
+#: part/templates/part/detail.html:191 part/templates/part/part_sidebar.html:9
msgid "Parameters"
msgstr "Parameter"
#: company/templates/company/manufacturer_part.html:147
-#: part/templates/part/detail.html:201
+#: part/templates/part/detail.html:196
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:66
msgid "New Parameter"
@@ -2894,7 +2922,7 @@ msgid "Delete parameters"
msgstr "Parameter löschen"
#: company/templates/company/manufacturer_part.html:191
-#: part/templates/part/detail.html:908
+#: part/templates/part/detail.html:894
msgid "Add Parameter"
msgstr "Parameter hinzufügen"
@@ -2923,9 +2951,9 @@ msgid "Assigned Stock Items"
msgstr "Zugewiesene Lagerartikel"
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:516
+#: company/templates/company/supplier_part.html:24 stock/models.py:568
#: stock/templates/stock/item_base.html:381
-#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1888
+#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1844
msgid "Supplier Part"
msgstr "Zuliefererteil"
@@ -2951,7 +2979,7 @@ msgstr "Neuen Lagerartikel hinzufügen"
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:166
-#: templates/js/translated/stock.js:368
+#: templates/js/translated/stock.js:367
msgid "New Stock Item"
msgstr "Neuer Lagerartikel"
@@ -2961,7 +2989,7 @@ msgid "Supplier Part Orders"
msgstr "Zulieferer-Bestellungen"
#: company/templates/company/supplier_part.html:160
-#: part/templates/part/detail.html:89
+#: part/templates/part/detail.html:84
msgid "Order Part"
msgstr "Teil bestellen"
@@ -2972,7 +3000,7 @@ msgstr "Preisinformationen ansehen"
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1319
+#: part/templates/part/prices.html:271 part/views.py:1254
msgid "Add Price Break"
msgstr "Preisstaffel hinzufügen"
@@ -2980,11 +3008,11 @@ msgstr "Preisstaffel hinzufügen"
msgid "No price break information found"
msgstr "Keine Informationen zur Preisstaffel gefunden"
-#: company/templates/company/supplier_part.html:224 part/views.py:1381
+#: company/templates/company/supplier_part.html:224 part/views.py:1316
msgid "Delete Price Break"
msgstr "Preisstaffel löschen"
-#: company/templates/company/supplier_part.html:238 part/views.py:1367
+#: company/templates/company/supplier_part.html:238 part/views.py:1302
msgid "Edit Price Break"
msgstr "Preisstaffel bearbeiten"
@@ -3002,10 +3030,10 @@ msgstr "Preisstaffel löschen"
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:150
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/bom.js:553 templates/js/translated/part.js:495
-#: templates/js/translated/part.js:630 templates/js/translated/part.js:1147
-#: templates/js/translated/part.js:1308 templates/js/translated/stock.js:935
-#: templates/js/translated/stock.js:1711 templates/navbar.html:28
+#: templates/js/translated/bom.js:553 templates/js/translated/part.js:496
+#: templates/js/translated/part.js:631 templates/js/translated/part.js:1148
+#: templates/js/translated/part.js:1309 templates/js/translated/stock.js:891
+#: templates/js/translated/stock.js:1667 templates/navbar.html:28
msgid "Stock"
msgstr "Bestand"
@@ -3028,7 +3056,7 @@ msgstr "Bepreisung"
#: stock/templates/stock/location.html:150
#: stock/templates/stock/location.html:162
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2641
+#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2597
#: templates/stats.html:105 templates/stats.html:114 users/models.py:43
msgid "Stock Items"
msgstr "Lagerartikel"
@@ -3058,20 +3086,20 @@ msgstr "Firmen"
msgid "New Company"
msgstr "Neue Firma"
-#: company/views.py:129 part/views.py:591
+#: company/views.py:129 part/views.py:589
msgid "Download Image"
msgstr "Bild herunterladen"
-#: company/views.py:158 part/views.py:623
+#: company/views.py:158 part/views.py:621
msgid "Image size exceeds maximum allowable size for download"
msgstr "Bildgröße überschreitet maximal-erlaubte Größe für Downloads"
-#: company/views.py:165 part/views.py:630
+#: company/views.py:165 part/views.py:628
#, python-brace-format
msgid "Invalid response: {code}"
msgstr "Ungültige Antwort {code}"
-#: company/views.py:174 part/views.py:639
+#: company/views.py:174 part/views.py:637
msgid "Supplied URL is not a valid image file"
msgstr "Angegebene URL ist kein gültiges Bild"
@@ -3190,7 +3218,7 @@ msgid "Company from which the items are being ordered"
msgstr "Firma bei der die Teile bestellt werden"
#: order/models.py:231 order/templates/order/order_base.html:118
-#: templates/js/translated/order.js:907
+#: templates/js/translated/order.js:967
msgid "Supplier Reference"
msgstr "Zulieferer-Referenz"
@@ -3247,7 +3275,7 @@ msgid "Target date for order completion. Order will be overdue after this date."
msgstr "Zieldatum für Auftrags-Fertigstellung."
#: order/models.py:589 order/models.py:1084
-#: templates/js/translated/order.js:1395 templates/js/translated/order.js:1546
+#: templates/js/translated/order.js:1483 templates/js/translated/order.js:1634
msgid "Shipment Date"
msgstr "Versanddatum"
@@ -3292,7 +3320,7 @@ msgid "Supplier part must match supplier"
msgstr "Lieferantenteil muss mit Lieferant übereinstimmen"
#: order/models.py:891 order/models.py:982 order/models.py:1078
-#: templates/js/translated/order.js:1937 templates/js/translated/stock.js:2403
+#: templates/js/translated/order.js:2025 templates/js/translated/stock.js:2359
msgid "Order"
msgstr "Bestellung"
@@ -3300,8 +3328,8 @@ msgstr "Bestellung"
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:331
-#: templates/js/translated/order.js:876 templates/js/translated/part.js:838
-#: templates/js/translated/stock.js:1865 templates/js/translated/stock.js:2716
+#: templates/js/translated/order.js:936 templates/js/translated/part.js:839
+#: templates/js/translated/stock.js:1821 templates/js/translated/stock.js:2672
msgid "Purchase Order"
msgstr "Bestellung"
@@ -3310,8 +3338,8 @@ msgid "Supplier part"
msgstr "Zuliefererteil"
#: order/models.py:920 order/templates/order/order_base.html:163
-#: templates/js/translated/order.js:654 templates/js/translated/order.js:1226
-#: templates/js/translated/part.js:932 templates/js/translated/part.js:959
+#: templates/js/translated/order.js:714 templates/js/translated/order.js:1313
+#: templates/js/translated/part.js:933 templates/js/translated/part.js:960
#: templates/js/translated/table_filters.js:312
msgid "Received"
msgstr "Empfangen"
@@ -3320,9 +3348,9 @@ msgstr "Empfangen"
msgid "Number of items received"
msgstr "Empfangene Objekt-Anzahl"
-#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:645
+#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:697
#: stock/serializers.py:170 stock/templates/stock/item_base.html:338
-#: templates/js/translated/stock.js:1919
+#: templates/js/translated/stock.js:1875
msgid "Purchase Price"
msgstr "Preis"
@@ -3456,11 +3484,11 @@ msgstr "Position stimmt nicht mit Kaufauftrag überein"
msgid "Select destination location for received items"
msgstr "Zielort für empfangene Teile auswählen"
-#: order/serializers.py:273 templates/js/translated/order.js:514
+#: order/serializers.py:273 templates/js/translated/order.js:574
msgid "Enter batch code for incoming stock items"
msgstr "Losnummer für eingehende Lagerartikel"
-#: order/serializers.py:281 templates/js/translated/order.js:525
+#: order/serializers.py:281 templates/js/translated/order.js:585
msgid "Enter serial numbers for incoming stock items"
msgstr "Seriennummern für eingehende Lagerartikel"
@@ -3578,7 +3606,7 @@ msgstr "Bestellungsbeschreibung"
#: order/templates/order/order_base.html:94
#: order/templates/order/sales_order_base.html:89
-#: templates/js/translated/stock.js:2459
+#: templates/js/translated/stock.js:2415
msgid "Order Status"
msgstr "Bestellstatus"
@@ -3650,10 +3678,10 @@ msgstr "Zulieferer-Teil auswählen"
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/bom.js:76 templates/js/translated/build.js:380
-#: templates/js/translated/build.js:528 templates/js/translated/build.js:1547
-#: templates/js/translated/order.js:602 templates/js/translated/order.js:1605
-#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769
+#: templates/js/translated/bom.js:76 templates/js/translated/build.js:381
+#: templates/js/translated/build.js:529 templates/js/translated/build.js:1558
+#: templates/js/translated/order.js:662 templates/js/translated/order.js:1693
+#: templates/js/translated/stock.js:557 templates/js/translated/stock.js:725
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr "Zeile entfernen"
@@ -3717,8 +3745,8 @@ msgid "Select existing purchase orders, or create new orders."
msgstr "Bestellungen auswählen oder anlegen."
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:940 templates/js/translated/order.js:1403
-#: templates/js/translated/order.js:1533
+#: templates/js/translated/order.js:1000 templates/js/translated/order.js:1491
+#: templates/js/translated/order.js:1621
msgid "Items"
msgstr "Positionen"
@@ -3752,9 +3780,9 @@ msgid "Purchase Order Items"
msgstr "Bestellungs-Positionen"
#: order/templates/order/purchase_order_detail.html:27
-#: order/templates/order/purchase_order_detail.html:182
+#: order/templates/order/purchase_order_detail.html:166
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:245
+#: order/templates/order/sales_order_detail.html:233
msgid "Add Line Item"
msgstr "Position hinzufügen"
@@ -3794,7 +3822,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr "Dieser Auftrag ist nicht vollständig zugeordnet"
#: order/templates/order/sales_order_base.html:122
-#: templates/js/translated/order.js:1361
+#: templates/js/translated/order.js:1449
msgid "Customer Reference"
msgstr "Kundenreferenz"
@@ -3827,7 +3855,7 @@ msgid "Pending Shipments"
msgstr "Ausstehende Sendungen"
#: order/templates/order/sales_order_detail.html:48
-#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1465
+#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1466
msgid "Actions"
msgstr "Aktionen"
@@ -3902,31 +3930,31 @@ 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/api.py:499
+#: part/api.py:502
msgid "Valid"
msgstr "Gültig"
-#: part/api.py:500
+#: part/api.py:503
msgid "Validate entire Bill of Materials"
msgstr "Gesamte Stückliste validieren"
-#: part/api.py:505
+#: part/api.py:508
msgid "This option must be selected"
msgstr "Diese Option muss ausgewählt werden"
-#: part/api.py:847
+#: part/api.py:866
msgid "Must be greater than zero"
msgstr "Muss größer als 0 sein"
-#: part/api.py:851
+#: part/api.py:870
msgid "Must be a valid quantity"
msgstr "Muss eine gültige Nummer sein"
-#: part/api.py:866
+#: part/api.py:885
msgid "Specify location for initial part stock"
msgstr "Standort für anfänglichen Bestand angeben"
-#: part/api.py:897 part/api.py:901 part/api.py:916 part/api.py:920
+#: part/api.py:916 part/api.py:920 part/api.py:935 part/api.py:939
msgid "This field is required"
msgstr "Dieses Feld ist erforderlich"
@@ -3944,7 +3972,7 @@ msgid "Available Stock"
msgstr "Verfügbarer Bestand"
#: part/bom.py:128 part/templates/part/part_base.html:203
-#: templates/js/translated/part.js:1323
+#: templates/js/translated/part.js:1324
msgid "On Order"
msgstr "Bestellt"
@@ -3976,7 +4004,7 @@ msgstr "Standard Stichwörter"
msgid "Default keywords for parts in this category"
msgstr "Standard-Stichworte für Teile dieser Kategorie"
-#: part/models.py:97 part/models.py:2571 part/templates/part/category.html:15
+#: part/models.py:97 part/models.py:2585 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Teil-Kategorie"
@@ -3993,7 +4021,7 @@ msgstr "Teil-Kategorien"
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:37
-#: templates/js/translated/part.js:1685 templates/navbar.html:21
+#: templates/js/translated/part.js:1686 templates/navbar.html:21
#: templates/stats.html:92 templates/stats.html:101 users/models.py:41
msgid "Parts"
msgstr "Teile"
@@ -4023,7 +4051,7 @@ msgstr "Die neuste Seriennummer ist"
msgid "Duplicate IPN not allowed in part settings"
msgstr "Doppelte IPN in den Teil-Einstellungen nicht erlaubt"
-#: part/models.py:803 part/models.py:2624
+#: part/models.py:803 part/models.py:2638
msgid "Part name"
msgstr "Name des Teils"
@@ -4056,11 +4084,11 @@ msgstr "Schlüsselwörter"
msgid "Part keywords to improve visibility in search results"
msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern"
-#: part/models.py:841 part/models.py:2321 part/models.py:2570
+#: part/models.py:841 part/models.py:2335 part/models.py:2584
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:223
-#: templates/js/translated/part.js:1290
+#: templates/js/translated/part.js:1291
msgid "Category"
msgstr "Kategorie"
@@ -4069,8 +4097,8 @@ msgid "Part category"
msgstr "Teile-Kategorie"
#: part/models.py:847 part/templates/part/part_base.html:274
-#: templates/js/translated/part.js:618 templates/js/translated/part.js:1243
-#: templates/js/translated/stock.js:1683
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:1244
+#: templates/js/translated/stock.js:1639
msgid "IPN"
msgstr "IPN (Interne Produktnummer)"
@@ -4083,7 +4111,7 @@ msgid "Part revision or version number"
msgstr "Revisions- oder Versionsnummer"
#: part/models.py:855 part/templates/part/part_base.html:281
-#: report/models.py:200 templates/js/translated/part.js:622
+#: report/models.py:200 templates/js/translated/part.js:623
msgid "Revision"
msgstr "Revision"
@@ -4175,301 +4203,309 @@ msgstr "Erstellungs-Nutzer"
msgid "Sell multiple"
msgstr "Mehrere verkaufen"
-#: part/models.py:2371
+#: part/models.py:2385
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:2388
+#: part/models.py:2402
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:2408 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:1311
+#: part/models.py:2422 templates/js/translated/part.js:1737
+#: templates/js/translated/stock.js:1267
msgid "Test Name"
msgstr "Test-Name"
-#: part/models.py:2409
+#: part/models.py:2423
msgid "Enter a name for the test"
msgstr "Namen für diesen Test eingeben"
-#: part/models.py:2414
+#: part/models.py:2428
msgid "Test Description"
msgstr "Test-Beschreibung"
-#: part/models.py:2415
+#: part/models.py:2429
msgid "Enter description for this test"
msgstr "Beschreibung für diesen Test eingeben"
-#: part/models.py:2420 templates/js/translated/part.js:1745
+#: part/models.py:2434 templates/js/translated/part.js:1746
#: templates/js/translated/table_filters.js:276
msgid "Required"
msgstr "Benötigt"
-#: part/models.py:2421
+#: part/models.py:2435
msgid "Is this test required to pass?"
msgstr "Muss dieser Test erfolgreich sein?"
-#: part/models.py:2426 templates/js/translated/part.js:1753
+#: part/models.py:2440 templates/js/translated/part.js:1754
msgid "Requires Value"
msgstr "Erfordert Wert"
-#: part/models.py:2427
+#: part/models.py:2441
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:2432 templates/js/translated/part.js:1760
+#: part/models.py:2446 templates/js/translated/part.js:1761
msgid "Requires Attachment"
msgstr "Anhang muss eingegeben werden"
-#: part/models.py:2433
+#: part/models.py:2447
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:2444
+#: part/models.py:2458
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr "Ungültiges Zeichen im Vorlagename ({c})"
-#: part/models.py:2480
+#: part/models.py:2494
msgid "Parameter template name must be unique"
msgstr "Vorlagen-Name des Parameters muss eindeutig sein"
-#: part/models.py:2488
+#: part/models.py:2502
msgid "Parameter Name"
msgstr "Name des Parameters"
-#: part/models.py:2495
+#: part/models.py:2509
msgid "Parameter Units"
msgstr "Einheit des Parameters"
-#: part/models.py:2525
+#: part/models.py:2539
msgid "Parent Part"
msgstr "Ausgangsteil"
-#: part/models.py:2527 part/models.py:2576 part/models.py:2577
+#: part/models.py:2541 part/models.py:2590 part/models.py:2591
#: templates/InvenTree/settings/settings.html:218
msgid "Parameter Template"
msgstr "Parameter Vorlage"
-#: part/models.py:2529
+#: part/models.py:2543
msgid "Data"
msgstr "Wert"
-#: part/models.py:2529
+#: part/models.py:2543
msgid "Parameter Value"
msgstr "Parameter Wert"
-#: part/models.py:2581 templates/InvenTree/settings/settings.html:227
+#: part/models.py:2595 templates/InvenTree/settings/settings.html:227
msgid "Default Value"
msgstr "Standard-Wert"
-#: part/models.py:2582
+#: part/models.py:2596
msgid "Default Parameter Value"
msgstr "Standard Parameter Wert"
-#: part/models.py:2616
+#: part/models.py:2630
msgid "Part ID or part name"
msgstr "Teilnummer oder Teilname"
-#: part/models.py:2619 templates/js/translated/model_renderers.js:182
+#: part/models.py:2633 templates/js/translated/model_renderers.js:182
msgid "Part ID"
msgstr "Teil-ID"
-#: part/models.py:2620
+#: part/models.py:2634
msgid "Unique part ID value"
msgstr "Eindeutige Teil-ID"
-#: part/models.py:2623
+#: part/models.py:2637
msgid "Part Name"
msgstr "Name des Teils"
-#: part/models.py:2627
+#: part/models.py:2641
msgid "Part IPN"
msgstr "Teil-ID"
-#: part/models.py:2628
+#: part/models.py:2642
msgid "Part IPN value"
msgstr "IPN-Wert des Teils"
-#: part/models.py:2631
+#: part/models.py:2645
msgid "Level"
msgstr "Stufe"
-#: part/models.py:2632
+#: part/models.py:2646
msgid "BOM level"
msgstr "Stücklistenebene"
-#: part/models.py:2692
+#: part/models.py:2707
msgid "Select parent part"
msgstr "Ausgangsteil auswählen"
-#: part/models.py:2700
+#: part/models.py:2715
msgid "Sub part"
msgstr "Untergeordnetes Teil"
-#: part/models.py:2701
+#: part/models.py:2716
msgid "Select part to be used in BOM"
msgstr "Teil für die Nutzung in der Stückliste auswählen"
-#: part/models.py:2707
+#: part/models.py:2722
msgid "BOM quantity for this BOM item"
msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil"
-#: part/models.py:2709 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:791 templates/js/translated/bom.js:865
+#: part/models.py:2724 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr "Optional"
-#: part/models.py:2709
+#: part/models.py:2724
msgid "This BOM item is optional"
msgstr "Diese Stücklisten-Position ist optional"
-#: part/models.py:2712 part/templates/part/upload_bom.html:55
+#: part/models.py:2727 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr "Überschuss"
-#: part/models.py:2713
+#: part/models.py:2728
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr "Geschätzter Ausschuss (absolut oder prozentual)"
-#: part/models.py:2716
+#: part/models.py:2731
msgid "BOM item reference"
msgstr "Referenz der Postion auf der Stückliste"
-#: part/models.py:2719
+#: part/models.py:2734
msgid "BOM item notes"
msgstr "Notizen zur Stücklisten-Position"
-#: part/models.py:2721
+#: part/models.py:2736
msgid "Checksum"
msgstr "Prüfsumme"
-#: part/models.py:2721
+#: part/models.py:2736
msgid "BOM line checksum"
msgstr "Prüfsumme der Stückliste"
-#: part/models.py:2725 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:882
+#: part/models.py:2740 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:880
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr "Geerbt"
-#: part/models.py:2726
+#: part/models.py:2741
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:2731 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:874
+#: part/models.py:2746 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:872
msgid "Allow Variants"
msgstr "Varianten zulassen"
-#: part/models.py:2732
+#: part/models.py:2747
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:2817 stock/models.py:394
+#: part/models.py:2832 stock/models.py:446
msgid "Quantity must be integer value for trackable parts"
msgstr "Menge muss eine Ganzzahl sein"
-#: part/models.py:2826 part/models.py:2828
+#: part/models.py:2841 part/models.py:2843
msgid "Sub part must be specified"
msgstr "Zuliefererteil muss festgelegt sein"
-#: part/models.py:2957
+#: part/models.py:2972
msgid "BOM Item Substitute"
msgstr "Stücklisten Ersatzteile"
-#: part/models.py:2979
+#: part/models.py:2994
msgid "Substitute part cannot be the same as the master part"
msgstr "Ersatzteil kann nicht identisch mit dem Hauptteil sein"
-#: part/models.py:2991
+#: part/models.py:3006
msgid "Parent BOM item"
msgstr "Übergeordnete Stücklisten Position"
-#: part/models.py:2999
+#: part/models.py:3014
msgid "Substitute part"
msgstr "Ersatzteil"
-#: part/models.py:3010
+#: part/models.py:3025
msgid "Part 1"
msgstr "Teil 1"
-#: part/models.py:3014
+#: part/models.py:3029
msgid "Part 2"
msgstr "Teil 2"
-#: part/models.py:3014
+#: part/models.py:3029
msgid "Select Related Part"
msgstr "verknüpftes Teil auswählen"
-#: part/models.py:3046
+#: part/models.py:3061
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr "Fehler bei Verwandschaft: Ist das Teil mit sich selbst verwandt oder ist das die Verwandtschaft nicht eindeutig?"
-#: part/serializers.py:667
+#: part/serializers.py:670
msgid "Select part to copy BOM from"
msgstr "Bauteil auswählen, von dem Stückliste kopiert wird"
-#: part/serializers.py:678
+#: part/serializers.py:681
msgid "Remove Existing Data"
msgstr "Bestehende Daten entfernen"
-#: part/serializers.py:679
+#: part/serializers.py:682
msgid "Remove existing BOM items before copying"
msgstr "Bestehende Stücklisten-Positionen vor dem Kopieren entfernen"
-#: part/serializers.py:684
+#: part/serializers.py:687
msgid "Include Inherited"
msgstr "Vererbtes einschließen"
-#: part/serializers.py:685
+#: part/serializers.py:688
msgid "Include BOM items which are inherited from templated parts"
msgstr "Stücklisten-Positionen einbeziehen, die von Vorlage-Teilen geerbt werden"
-#: part/serializers.py:690
+#: part/serializers.py:693
msgid "Skip Invalid Rows"
msgstr "Ungültige Zeilen überspringen"
-#: part/serializers.py:691
+#: part/serializers.py:694
msgid "Enable this option to skip invalid rows"
msgstr "Aktiviere diese Option, um ungültige Zeilen zu überspringen"
-#: part/serializers.py:734
+#: part/serializers.py:699
+msgid "Copy Substitute Parts"
+msgstr "Ersatzteile kopieren"
+
+#: part/serializers.py:700
+msgid "Copy substitute parts when duplicate BOM items"
+msgstr "Ersatzteile beim Duplizieren von Stücklisten-Positionen kopieren"
+
+#: part/serializers.py:744
msgid "Clear Existing BOM"
msgstr "Bestehende Stückliste löschen"
-#: part/serializers.py:735
+#: part/serializers.py:745
msgid "Delete existing BOM items before uploading"
msgstr "Bestehende Stücklisten-Positionen vor dem Importieren entfernen"
-#: part/serializers.py:762
+#: part/serializers.py:772
msgid "No part column specified"
msgstr "Keine Bauteilspalte angegeben"
-#: part/serializers.py:805
+#: part/serializers.py:815
msgid "Multiple matching parts found"
msgstr "Mehrere übereinstimmende Teile gefunden"
-#: part/serializers.py:808
+#: part/serializers.py:818
msgid "No matching part found"
msgstr "Keine passenden Teile gefunden"
-#: part/serializers.py:811
+#: part/serializers.py:821
msgid "Part is not designated as a component"
msgstr "Teil ist nicht als Komponente angelegt"
-#: part/serializers.py:820
+#: part/serializers.py:830
msgid "Quantity not provided"
msgstr "Menge nicht angegeben"
-#: part/serializers.py:828
+#: part/serializers.py:838
msgid "Invalid quantity"
msgstr "Ungültige Menge"
-#: part/serializers.py:847
+#: part/serializers.py:857
msgid "At least one BOM item is required"
msgstr "Mindestens eine Stückliste-Position ist erforderlich"
@@ -4496,7 +4532,7 @@ msgstr "Die Stückliste für %(part)s wurde zuletzt von %(checker)s am
msgid "The BOM for %(part)s has not been validated."
msgstr "Die Stückliste für %(part)s wurde noch nicht kontrolliert."
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:279
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:274
msgid "BOM actions"
msgstr "Stücklisten-Aktionen"
@@ -4548,7 +4584,7 @@ msgstr "Pfad zur Kategorie"
msgid "Top level part category"
msgstr "Oberste Teil-Kategorie"
-#: part/templates/part/category.html:114 part/templates/part/category.html:205
+#: part/templates/part/category.html:114 part/templates/part/category.html:202
#: part/templates/part/category_sidebar.html:7
msgid "Subcategories"
msgstr "Unter-Kategorien"
@@ -4557,55 +4593,51 @@ msgstr "Unter-Kategorien"
msgid "Parts (Including subcategories)"
msgstr "Teile (inklusive Unter-Kategorien)"
-#: part/templates/part/category.html:156
-msgid "Export Part Data"
-msgstr "Teile-Daten exportieren"
-
-#: part/templates/part/category.html:157 part/templates/part/category.html:181
-msgid "Export"
-msgstr "Exportieren"
-
-#: part/templates/part/category.html:160
+#: part/templates/part/category.html:157
msgid "Create new part"
msgstr "Neues Teil anlegen"
-#: part/templates/part/category.html:161 templates/js/translated/bom.js:365
+#: part/templates/part/category.html:158 templates/js/translated/bom.js:365
msgid "New Part"
msgstr "Neues Teil"
-#: part/templates/part/category.html:175
+#: part/templates/part/category.html:172
msgid "Set category"
msgstr "Teil-Kategorie auswählen"
-#: part/templates/part/category.html:175
+#: part/templates/part/category.html:172
msgid "Set Category"
msgstr "Teil-Kategorie auswählen"
-#: part/templates/part/category.html:179
+#: part/templates/part/category.html:176
msgid "Print Labels"
msgstr "Label drucken"
-#: part/templates/part/category.html:181
+#: part/templates/part/category.html:178
+msgid "Export"
+msgstr "Exportieren"
+
+#: part/templates/part/category.html:178
msgid "Export Data"
msgstr "Exportieren"
-#: part/templates/part/category.html:195
+#: part/templates/part/category.html:192
msgid "Part Parameters"
msgstr "Teilparameter"
-#: part/templates/part/category.html:288
+#: part/templates/part/category.html:285
msgid "Create Part Category"
msgstr "Teil-Kategorie hinzufügen"
-#: part/templates/part/category.html:315
+#: part/templates/part/category.html:305
msgid "Create Part"
msgstr "Teil hinzufügen"
-#: part/templates/part/category.html:318
+#: part/templates/part/category.html:308
msgid "Create another part after this one"
msgstr "Ein weiteres Teil anlegen"
-#: part/templates/part/category.html:319
+#: part/templates/part/category.html:309
msgid "Part created successfully"
msgstr "Teil erfolgreich angelegt"
@@ -4676,155 +4708,150 @@ msgstr "%(full_name)s - %(desc)s (%(match_per)s%% übereinstimmend)"
msgid "Part Stock"
msgstr "Teilbestand"
-#: part/templates/part/detail.html:33
-#, python-format
-msgid "Showing stock for all variants of %(full_name)s"
-msgstr "Bestand aller Varianten von %(full_name)s"
-
-#: part/templates/part/detail.html:43
+#: part/templates/part/detail.html:38
msgid "Part Stock Allocations"
msgstr "Teil-Bestandszuordnungen"
-#: part/templates/part/detail.html:60
+#: part/templates/part/detail.html:55
msgid "Part Test Templates"
msgstr "Teil Test-Vorlagen"
-#: part/templates/part/detail.html:65
+#: part/templates/part/detail.html:60
msgid "Add Test Template"
msgstr "Test Vorlage hinzufügen"
-#: part/templates/part/detail.html:122
+#: part/templates/part/detail.html:117
msgid "Sales Order Allocations"
msgstr "Verkaufsauftragszuweisungen"
-#: part/templates/part/detail.html:168
+#: part/templates/part/detail.html:163
msgid "Part Variants"
msgstr "Teil Varianten"
-#: part/templates/part/detail.html:172
+#: part/templates/part/detail.html:167
msgid "Create new variant"
msgstr "Neue Variante anlegen"
-#: part/templates/part/detail.html:173
+#: part/templates/part/detail.html:168
msgid "New Variant"
msgstr "neue Variante anlegen"
-#: part/templates/part/detail.html:200
+#: part/templates/part/detail.html:195
msgid "Add new parameter"
msgstr "Parameter hinzufügen"
-#: part/templates/part/detail.html:237 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:52
msgid "Related Parts"
msgstr "Verknüpfte Teile"
-#: part/templates/part/detail.html:241 part/templates/part/detail.html:242
+#: part/templates/part/detail.html:236 part/templates/part/detail.html:237
msgid "Add Related"
msgstr "Verknüpftes Teil hinzufügen"
-#: part/templates/part/detail.html:262 part/templates/part/part_sidebar.html:18
+#: part/templates/part/detail.html:257 part/templates/part/part_sidebar.html:18
msgid "Bill of Materials"
msgstr "Stückliste"
-#: part/templates/part/detail.html:267
+#: part/templates/part/detail.html:262
msgid "Export actions"
msgstr "Export-Aktionen"
-#: part/templates/part/detail.html:271 templates/js/translated/bom.js:283
+#: part/templates/part/detail.html:266 templates/js/translated/bom.js:283
msgid "Export BOM"
msgstr "Stückliste exportieren"
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:268
msgid "Print BOM Report"
msgstr "Stücklisten-Bericht drucken"
-#: part/templates/part/detail.html:283
+#: part/templates/part/detail.html:278
msgid "Upload BOM"
msgstr "Stückliste hochladen"
-#: part/templates/part/detail.html:285 templates/js/translated/part.js:272
+#: part/templates/part/detail.html:279 templates/js/translated/part.js:272
msgid "Copy BOM"
msgstr "Stückliste kopieren"
-#: part/templates/part/detail.html:287
+#: part/templates/part/detail.html:280
msgid "Validate BOM"
msgstr "Stückliste überprüfen"
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:285
msgid "New BOM Item"
msgstr "Neue Stücklisten-Position"
-#: part/templates/part/detail.html:293
+#: part/templates/part/detail.html:286
msgid "Add BOM Item"
msgstr "Stücklisten-Position hinzufügen"
-#: part/templates/part/detail.html:306
+#: part/templates/part/detail.html:299
msgid "Assemblies"
msgstr "Baugruppen"
-#: part/templates/part/detail.html:323
+#: part/templates/part/detail.html:316
msgid "Part Builds"
msgstr "Gefertigte Teile"
-#: part/templates/part/detail.html:348
+#: part/templates/part/detail.html:341
msgid "Build Order Allocations"
msgstr "Bauauftragszuweisungen"
-#: part/templates/part/detail.html:363
+#: part/templates/part/detail.html:356
msgid "Part Suppliers"
msgstr "Zulieferer"
-#: part/templates/part/detail.html:391
+#: part/templates/part/detail.html:384
msgid "Part Manufacturers"
msgstr "Teil-Hersteller"
-#: part/templates/part/detail.html:407
+#: part/templates/part/detail.html:400
msgid "Delete manufacturer parts"
msgstr "Herstellerteile löschen"
-#: part/templates/part/detail.html:589
+#: part/templates/part/detail.html:582
msgid "Delete selected BOM items?"
msgstr "Ausgewählte Stücklistenpositionen löschen?"
-#: part/templates/part/detail.html:590
+#: part/templates/part/detail.html:583
msgid "All selected BOM items will be deleted"
msgstr "Alle ausgewählte Stücklistenpositionen werden gelöscht"
-#: part/templates/part/detail.html:639
+#: part/templates/part/detail.html:632
msgid "Create BOM Item"
msgstr "Stücklisten-Position anlegen"
-#: part/templates/part/detail.html:696
+#: part/templates/part/detail.html:689
msgid "Related Part"
msgstr "verknüpftes Teil"
-#: part/templates/part/detail.html:704
+#: part/templates/part/detail.html:697
msgid "Add Related Part"
msgstr "verknüpftes Teil hinzufügen"
-#: part/templates/part/detail.html:801
+#: part/templates/part/detail.html:794
msgid "Add Test Result Template"
msgstr "Testergebnis-Vorlage hinzufügen"
-#: part/templates/part/detail.html:858
+#: part/templates/part/detail.html:844
msgid "Edit Part Notes"
msgstr "Teilenotizen bearbeiten"
-#: part/templates/part/detail.html:971
+#: part/templates/part/detail.html:957
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr "Stückpreis Einkauf - %(currency)s"
-#: part/templates/part/detail.html:983
+#: part/templates/part/detail.html:969
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr "Stückpreis Differenz - %(currency)s"
-#: part/templates/part/detail.html:995
+#: part/templates/part/detail.html:981
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr "Stückpreis Zulieferer - %(currency)s"
-#: part/templates/part/detail.html:1084
+#: part/templates/part/detail.html:1070
#, python-format
msgid "Unit Price - %(currency)s"
msgstr "Stückpreis - %(currency)s"
@@ -4969,7 +4996,7 @@ msgstr "Teil ist virtuell (kein physisches Teil)"
#: templates/js/translated/company.js:508
#: templates/js/translated/company.js:765
#: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:533 templates/js/translated/part.js:610
+#: templates/js/translated/part.js:534 templates/js/translated/part.js:611
msgid "Inactive"
msgstr "Inaktiv"
@@ -4983,7 +5010,7 @@ msgstr "Teildetails anzeigen"
msgid "This part is a variant of %(link)s"
msgstr "Dieses Teil ist eine Variante von %(link)s"
-#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2356
+#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2444
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr "Auf Lager"
@@ -5000,12 +5027,12 @@ msgstr "Benötigt für Aufträge"
msgid "Allocated to Orders"
msgstr "Zu Bauaufträgen zugeordnet"
-#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:903
+#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:901
msgid "Can Build"
msgstr "Herstellbar"
-#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1154
-#: templates/js/translated/part.js:1327
+#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1155
+#: templates/js/translated/part.js:1328
msgid "Building"
msgstr "Im Bau"
@@ -5057,7 +5084,7 @@ msgid "Total Cost"
msgstr "Gesamtkosten"
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:857
+#: templates/js/translated/bom.js:855
msgid "No supplier pricing available"
msgstr "Keine Zulieferer-Preise verfügbar"
@@ -5179,7 +5206,7 @@ msgstr "Verkaufspreis anzeigen"
msgid "Calculation parameters"
msgstr "Berechnungsparameter"
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:851
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849
msgid "Supplier Cost"
msgstr "Zuliefererkosten"
@@ -5201,7 +5228,7 @@ msgstr "Für dieses Teil sind keine Bestandspreise verfügbar."
msgid "Internal Cost"
msgstr "Interne Kosten"
-#: part/templates/part/prices.html:215 part/views.py:1390
+#: part/templates/part/prices.html:215 part/views.py:1325
msgid "Add Internal Price Break"
msgstr "Interne Preisspanne hinzufügen"
@@ -5221,9 +5248,9 @@ msgstr "Keine Verkaufsgeschichte für diesen Teil verfügbar."
msgid "Set category for the following parts"
msgstr "Kategorie für Teile setzen"
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813
-#: templates/js/translated/part.js:497 templates/js/translated/part.js:1144
-#: templates/js/translated/part.js:1331
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811
+#: templates/js/translated/part.js:498 templates/js/translated/part.js:1145
+#: templates/js/translated/part.js:1332
msgid "No Stock"
msgstr "Kein Bestand"
@@ -5277,100 +5304,100 @@ msgstr "Neue Teilevariante anlegen"
msgid "Create a new variant of template '%(full_name)s'."
msgstr "Neue Variante von Vorlage anlegen '%(full_name)s'."
-#: part/templatetags/inventree_extras.py:172
+#: part/templatetags/inventree_extras.py:174
msgid "Unknown database"
msgstr "Unbekannte Datenbank"
-#: part/views.py:90
+#: part/views.py:88
msgid "Set Part Category"
msgstr "Teil-Kategorie auswählen"
-#: part/views.py:140
+#: part/views.py:138
#, python-brace-format
msgid "Set category for {n} parts"
msgstr "Kategorie für {n} Teile setzen"
-#: part/views.py:212
+#: part/views.py:210
msgid "Match References"
msgstr "Referenzen zuteilen"
-#: part/views.py:509
+#: part/views.py:507
msgid "None"
msgstr "Kein(e)"
-#: part/views.py:568
+#: part/views.py:566
msgid "Part QR Code"
msgstr "Teil-QR-Code"
-#: part/views.py:670
+#: part/views.py:668
msgid "Select Part Image"
msgstr "Teilbild auswählen"
-#: part/views.py:696
+#: part/views.py:694
msgid "Updated part image"
msgstr "Teilbild aktualisiert"
-#: part/views.py:699
+#: part/views.py:697
msgid "Part image not found"
msgstr "Teilbild nicht gefunden"
-#: part/views.py:850
+#: part/views.py:785
msgid "Confirm Part Deletion"
msgstr "Löschen des Teils bestätigen"
-#: part/views.py:857
+#: part/views.py:792
msgid "Part was deleted"
msgstr "Teil wurde gelöscht"
-#: part/views.py:866
+#: part/views.py:801
msgid "Part Pricing"
msgstr "Teilbepreisung"
-#: part/views.py:1015
+#: part/views.py:950
msgid "Create Part Parameter Template"
msgstr "Teilparametervorlage anlegen"
-#: part/views.py:1025
+#: part/views.py:960
msgid "Edit Part Parameter Template"
msgstr "Teilparametervorlage bearbeiten"
-#: part/views.py:1032
+#: part/views.py:967
msgid "Delete Part Parameter Template"
msgstr "Teilparametervorlage löschen"
-#: part/views.py:1091 templates/js/translated/part.js:315
+#: part/views.py:1026 templates/js/translated/part.js:315
msgid "Edit Part Category"
msgstr "Teil-Kategorie bearbeiten"
-#: part/views.py:1129
+#: part/views.py:1064
msgid "Delete Part Category"
msgstr "Teil-Kategorie löschen"
-#: part/views.py:1135
+#: part/views.py:1070
msgid "Part category was deleted"
msgstr "Teil-Kategorie wurde gelöscht"
-#: part/views.py:1144
+#: part/views.py:1079
msgid "Create Category Parameter Template"
msgstr "Kategorieparametervorlage anlegen"
-#: part/views.py:1245
+#: part/views.py:1180
msgid "Edit Category Parameter Template"
msgstr "Kategorieparametervorlage bearbeiten"
-#: part/views.py:1301
+#: part/views.py:1236
msgid "Delete Category Parameter Template"
msgstr "Kategorieparametervorlage löschen"
-#: part/views.py:1323
+#: part/views.py:1258
msgid "Added new price break"
msgstr "neue Preisstaffel hinzufügt"
-#: part/views.py:1399
+#: part/views.py:1334
msgid "Edit Internal Price Break"
msgstr "Interne Preisspanne bearbeiten"
-#: part/views.py:1407
+#: part/views.py:1342
msgid "Delete Internal Price Break"
msgstr "Interne Preisspanne löschen"
@@ -5576,12 +5603,12 @@ msgid "Stock Item Test Report"
msgstr "Lagerartikel Test-Bericht"
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:556 stock/templates/stock/item_base.html:151
-#: templates/js/translated/build.js:373 templates/js/translated/build.js:521
-#: templates/js/translated/build.js:919 templates/js/translated/build.js:1295
+#: stock/models.py:608 stock/templates/stock/item_base.html:151
+#: templates/js/translated/build.js:374 templates/js/translated/build.js:522
+#: templates/js/translated/build.js:920 templates/js/translated/build.js:1296
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:99 templates/js/translated/order.js:2062
-#: templates/js/translated/order.js:2151 templates/js/translated/stock.js:423
+#: templates/js/translated/order.js:99 templates/js/translated/order.js:2150
+#: templates/js/translated/order.js:2239 templates/js/translated/stock.js:422
msgid "Serial Number"
msgstr "Seriennummer"
@@ -5590,19 +5617,19 @@ msgid "Test Results"
msgstr "Testergebnisse"
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:2052
+#: stock/models.py:2104
msgid "Test"
msgstr "Test"
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:2058
+#: stock/models.py:2110
msgid "Result"
msgstr "Ergebnis"
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:50
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:924 templates/js/translated/stock.js:2657
+#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2613
msgid "Date"
msgstr "Datum"
@@ -5620,26 +5647,26 @@ msgid "Installed Items"
msgstr "Verbaute Objekte"
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756
-#: templates/js/translated/stock.js:2910
+#: templates/js/translated/stock.js:542 templates/js/translated/stock.js:712
+#: templates/js/translated/stock.js:2866
msgid "Serial"
msgstr "Seriennummer"
-#: stock/api.py:501
+#: stock/api.py:503
msgid "Quantity is required"
msgstr "Menge ist erforderlich"
-#: stock/api.py:508
+#: stock/api.py:510
msgid "Valid part must be supplied"
msgstr "Gültiges Teil muss angegeben werden"
-#: stock/api.py:533
+#: stock/api.py:535
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr "Seriennummern können für nicht verfolgbare Teile nicht angegeben werden"
-#: stock/forms.py:74 stock/forms.py:198 stock/models.py:613
+#: stock/forms.py:74 stock/forms.py:198 stock/models.py:665
#: stock/templates/stock/item_base.html:188
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1791
msgid "Expiry Date"
msgstr "Ablaufdatum"
@@ -5679,228 +5706,228 @@ msgstr "nicht mehr verbauen bestätigen"
msgid "Confirm removal of installed stock items"
msgstr "Entfernen der verbauten Lagerartikel bestätigen"
-#: stock/models.py:62 stock/models.py:650
+#: stock/models.py:62 stock/models.py:702
#: stock/templates/stock/item_base.html:402
msgid "Owner"
msgstr "Besitzer"
-#: stock/models.py:63 stock/models.py:651
+#: stock/models.py:63 stock/models.py:703
msgid "Select Owner"
msgstr "Besitzer auswählen"
-#: stock/models.py:375
+#: stock/models.py:427
msgid "StockItem with this serial number already exists"
msgstr "Ein Lagerartikel mit dieser Seriennummer existiert bereits"
-#: stock/models.py:411
+#: stock/models.py:463
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr "Teile-Typ ('{pf}') muss {pe} sein"
-#: stock/models.py:421 stock/models.py:430
+#: stock/models.py:473 stock/models.py:482
msgid "Quantity must be 1 for item with a serial number"
msgstr "Anzahl muss für Objekte mit Seriennummer 1 sein"
-#: stock/models.py:422
+#: stock/models.py:474
msgid "Serial number cannot be set if quantity greater than 1"
msgstr "Seriennummer kann nicht gesetzt werden wenn die Anzahl größer als 1 ist"
-#: stock/models.py:444
+#: stock/models.py:496
msgid "Item cannot belong to itself"
msgstr "Teil kann nicht zu sich selbst gehören"
-#: stock/models.py:450
+#: stock/models.py:502
msgid "Item must have a build reference if is_building=True"
msgstr "Teil muss eine Referenz haben wenn is_building wahr ist"
-#: stock/models.py:457
+#: stock/models.py:509
msgid "Build reference does not point to the same part object"
msgstr "Referenz verweist nicht auf das gleiche Teil"
-#: stock/models.py:500
+#: stock/models.py:552
msgid "Parent Stock Item"
msgstr "Eltern-Lagerartikel"
-#: stock/models.py:509
+#: stock/models.py:561
msgid "Base part"
msgstr "Basis-Teil"
-#: stock/models.py:517
+#: stock/models.py:569
msgid "Select a matching supplier part for this stock item"
msgstr "Passendes Zuliefererteil für diesen Lagerartikel auswählen"
-#: stock/models.py:523 stock/templates/stock/location.html:16
+#: stock/models.py:575 stock/templates/stock/location.html:16
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr "Bestand-Lagerort"
-#: stock/models.py:526
+#: stock/models.py:578
msgid "Where is this stock item located?"
msgstr "Wo wird dieses Teil normalerweise gelagert?"
-#: stock/models.py:533
+#: stock/models.py:585
msgid "Packaging this stock item is stored in"
msgstr "Die Verpackung dieses Lagerartikel ist gelagert in"
-#: stock/models.py:539 stock/templates/stock/item_base.html:277
+#: stock/models.py:591 stock/templates/stock/item_base.html:277
msgid "Installed In"
msgstr "verbaut in"
-#: stock/models.py:542
+#: stock/models.py:594
msgid "Is this item installed in another item?"
msgstr "Ist dieses Teil in einem anderen verbaut?"
-#: stock/models.py:558
+#: stock/models.py:610
msgid "Serial number for this item"
msgstr "Seriennummer für dieses Teil"
-#: stock/models.py:572
+#: stock/models.py:624
msgid "Batch code for this stock item"
msgstr "Losnummer für diesen Lagerartikel"
-#: stock/models.py:576
+#: stock/models.py:628
msgid "Stock Quantity"
msgstr "Bestand"
-#: stock/models.py:585
+#: stock/models.py:637
msgid "Source Build"
msgstr "Quellbau"
-#: stock/models.py:587
+#: stock/models.py:639
msgid "Build for this stock item"
msgstr "Bauauftrag für diesen Lagerartikel"
-#: stock/models.py:598
+#: stock/models.py:650
msgid "Source Purchase Order"
msgstr "Quelle Bestellung"
-#: stock/models.py:601
+#: stock/models.py:653
msgid "Purchase order for this stock item"
msgstr "Bestellung für diesen Lagerartikel"
-#: stock/models.py:607
+#: stock/models.py:659
msgid "Destination Sales Order"
msgstr "Ziel-Auftrag"
-#: stock/models.py:614
+#: stock/models.py:666
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr "Ablaufdatum für Lagerartikel. Bestand wird danach als abgelaufen gekennzeichnet"
-#: stock/models.py:627
+#: stock/models.py:679
msgid "Delete on deplete"
msgstr "Löschen wenn leer"
-#: stock/models.py:627
+#: stock/models.py:679
msgid "Delete this Stock Item when stock is depleted"
msgstr "Diesen Lagerartikel löschen wenn der Bestand aufgebraucht ist"
-#: stock/models.py:637 stock/templates/stock/item.html:121
+#: stock/models.py:689 stock/templates/stock/item.html:121
msgid "Stock Item Notes"
msgstr "Lagerartikel-Notizen"
-#: stock/models.py:646
+#: stock/models.py:698
msgid "Single unit purchase price at time of purchase"
msgstr "Preis für eine Einheit bei Einkauf"
-#: stock/models.py:1171
+#: stock/models.py:1223
msgid "Part is not set as trackable"
msgstr "Teil ist nicht verfolgbar"
-#: stock/models.py:1177
+#: stock/models.py:1229
msgid "Quantity must be integer"
msgstr "Anzahl muss eine Ganzzahl sein"
-#: stock/models.py:1183
+#: stock/models.py:1235
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr "Anzahl darf nicht die verfügbare Anzahl überschreiten ({n})"
-#: stock/models.py:1186
+#: stock/models.py:1238
msgid "Serial numbers must be a list of integers"
msgstr "Seriennummern muss eine Liste von Ganzzahlen sein"
-#: stock/models.py:1189
+#: stock/models.py:1241
msgid "Quantity does not match serial numbers"
msgstr "Anzahl stimmt nicht mit den Seriennummern überein"
-#: stock/models.py:1196
+#: stock/models.py:1248
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr "Seriennummern {exists} existieren bereits"
-#: stock/models.py:1267
+#: stock/models.py:1319
msgid "Stock item has been assigned to a sales order"
msgstr "Artikel wurde einem Kundenauftrag zugewiesen"
-#: stock/models.py:1270
+#: stock/models.py:1322
msgid "Stock item is installed in another item"
msgstr "Lagerartikel ist in anderem Element verbaut"
-#: stock/models.py:1273
+#: stock/models.py:1325
msgid "Stock item contains other items"
msgstr "Lagerartikel enthält andere Artikel"
-#: stock/models.py:1276
+#: stock/models.py:1328
msgid "Stock item has been assigned to a customer"
msgstr "Artikel wurde einem Kunden zugewiesen"
-#: stock/models.py:1279
+#: stock/models.py:1331
msgid "Stock item is currently in production"
msgstr "Lagerartikel wird aktuell produziert"
-#: stock/models.py:1282
+#: stock/models.py:1334
msgid "Serialized stock cannot be merged"
msgstr "Nachverfolgbare Lagerartikel können nicht zusammengeführt werden"
-#: stock/models.py:1289 stock/serializers.py:832
+#: stock/models.py:1341 stock/serializers.py:832
msgid "Duplicate stock items"
msgstr "Artikel duplizeren"
-#: stock/models.py:1293
+#: stock/models.py:1345
msgid "Stock items must refer to the same part"
msgstr "Lagerartikel müssen auf dasselbe Teil verweisen"
-#: stock/models.py:1297
+#: stock/models.py:1349
msgid "Stock items must refer to the same supplier part"
msgstr "Lagerartikel müssen auf dasselbe Lieferantenteil verweisen"
-#: stock/models.py:1301
+#: stock/models.py:1353
msgid "Stock status codes must match"
msgstr "Status-Codes müssen zusammenpassen"
-#: stock/models.py:1473
+#: stock/models.py:1525
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:1972
+#: stock/models.py:2024
msgid "Entry notes"
msgstr "Eintrags-Notizen"
-#: stock/models.py:2029
+#: stock/models.py:2081
msgid "Value must be provided for this test"
msgstr "Wert muss für diesen Test angegeben werden"
-#: stock/models.py:2035
+#: stock/models.py:2087
msgid "Attachment must be uploaded for this test"
msgstr "Anhang muss für diesen Test hochgeladen werden"
-#: stock/models.py:2053
+#: stock/models.py:2105
msgid "Test name"
msgstr "Name des Tests"
-#: stock/models.py:2059
+#: stock/models.py:2111
msgid "Test result"
msgstr "Testergebnis"
-#: stock/models.py:2065
+#: stock/models.py:2117
msgid "Test output value"
msgstr "Test Ausgabe Wert"
-#: stock/models.py:2072
+#: stock/models.py:2124
msgid "Test result attachment"
msgstr "Test Ergebnis Anhang"
-#: stock/models.py:2078
+#: stock/models.py:2130
msgid "Test notes"
msgstr "Test Notizen"
@@ -5937,7 +5964,7 @@ msgstr "Optionales Notizfeld"
msgid "Serial numbers cannot be assigned to this part"
msgstr "Seriennummern können diesem Teil nicht zugewiesen werden"
-#: stock/serializers.py:363 stock/views.py:1127
+#: stock/serializers.py:363 stock/views.py:1009
msgid "Serial numbers already exist"
msgstr "Seriennummern existieren bereits"
@@ -6054,11 +6081,11 @@ msgstr "Testdaten hinzufügen"
msgid "Installed Stock Items"
msgstr "Installierte Lagerartikel"
-#: stock/templates/stock/item.html:147 templates/js/translated/stock.js:3019
+#: stock/templates/stock/item.html:147 templates/js/translated/stock.js:2975
msgid "Install Stock Item"
msgstr "Lagerartikel installieren"
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1479
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1435
msgid "Add Test Result"
msgstr "Testergebnis hinzufügen"
@@ -6072,7 +6099,7 @@ msgstr "Barcode abhängen"
msgid "Link Barcode"
msgstr "Barcode anhängen"
-#: stock/templates/stock/item_base.html:46 templates/stock_table.html:24
+#: stock/templates/stock/item_base.html:46 templates/stock_table.html:21
msgid "Scan to Location"
msgstr "zu Lagerort einscannen"
@@ -6085,15 +6112,15 @@ msgid "Stock adjustment actions"
msgstr "Bestands-Anpassungs Aktionen"
#: stock/templates/stock/item_base.html:69
-#: stock/templates/stock/location.html:52 templates/stock_table.html:50
+#: stock/templates/stock/location.html:52 templates/stock_table.html:47
msgid "Count stock"
msgstr "Bestand zählen"
-#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48
+#: stock/templates/stock/item_base.html:72 templates/stock_table.html:45
msgid "Add stock"
msgstr "Bestand hinzufügen"
-#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49
+#: stock/templates/stock/item_base.html:75 templates/stock_table.html:46
msgid "Remove stock"
msgstr "Bestand entfernen"
@@ -6102,11 +6129,11 @@ msgid "Serialize stock"
msgstr "Bestand serialisieren"
#: stock/templates/stock/item_base.html:82
-#: stock/templates/stock/location.html:58 templates/stock_table.html:51
+#: stock/templates/stock/location.html:58 templates/stock_table.html:48
msgid "Transfer stock"
msgstr "Bestand verschieben"
-#: stock/templates/stock/item_base.html:85 templates/stock_table.html:54
+#: stock/templates/stock/item_base.html:85 templates/stock_table.html:51
msgid "Assign to customer"
msgstr "Kunden zuweisen"
@@ -6183,7 +6210,7 @@ msgid "Stale"
msgstr "überfällig"
#: stock/templates/stock/item_base.html:201
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1807
msgid "Last Updated"
msgstr "Zuletzt aktualisiert"
@@ -6220,7 +6247,7 @@ msgid "This stock item is serialized - it has a unique serial number and the qua
msgstr "Diesesr Lagerartikel ist serialisiert. Es hat eine eindeutige Seriennummer und die Anzahl kann nicht angepasst werden."
#: stock/templates/stock/item_base.html:296
-#: templates/js/translated/build.js:1317
+#: templates/js/translated/build.js:1318
msgid "No location set"
msgstr "Kein Lagerort gesetzt"
@@ -6322,11 +6349,11 @@ msgstr "Unter-Lagerorte"
msgid "Stock Locations"
msgstr "Bestand-Lagerorte"
-#: stock/templates/stock/location.html:185 templates/stock_table.html:30
+#: stock/templates/stock/location.html:185 templates/stock_table.html:27
msgid "Printing Actions"
msgstr "Druck Aktionen"
-#: stock/templates/stock/location.html:189 templates/stock_table.html:34
+#: stock/templates/stock/location.html:189 templates/stock_table.html:31
msgid "Print labels"
msgstr "Label drucken"
@@ -6350,7 +6377,7 @@ msgstr "Untergeordnete Objekte"
msgid "The following stock items will be uninstalled"
msgstr "Die folgenden Lagerartikel werden nicht mehr verbaut"
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:749
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:631
msgid "Convert Stock Item"
msgstr "Lagerartikel umwandeln"
@@ -6371,95 +6398,95 @@ msgstr "Diese Aktion kann nicht einfach rückgängig gemacht werden"
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr "Sind Sie sicher, dass Sie diesen Lagerartikel-Verfolgungs-Eintrag löschen wollen?"
-#: stock/views.py:181 templates/js/translated/stock.js:139
+#: stock/views.py:152 templates/js/translated/stock.js:138
msgid "Edit Stock Location"
msgstr "Lagerartikel-Ort bearbeiten"
-#: stock/views.py:288 stock/views.py:728 stock/views.py:854 stock/views.py:1136
+#: stock/views.py:259 stock/views.py:610 stock/views.py:736 stock/views.py:1018
msgid "Owner is required (ownership control is enabled)"
msgstr "Eigentümer notwendig (Eigentümerkontrolle aktiv)"
-#: stock/views.py:303
+#: stock/views.py:274
msgid "Stock Location QR code"
msgstr "QR-Code für diesen Lagerort"
-#: stock/views.py:322
+#: stock/views.py:293
msgid "Return to Stock"
msgstr "zurück ins Lager"
-#: stock/views.py:331
+#: stock/views.py:302
msgid "Specify a valid location"
msgstr "gültigen Lagerort angeben"
-#: stock/views.py:342
+#: stock/views.py:313
msgid "Stock item returned from customer"
msgstr "Lagerartikel retoure vom Kunden"
-#: stock/views.py:353
+#: stock/views.py:324
msgid "Delete All Test Data"
msgstr "alle Testdaten löschen"
-#: stock/views.py:370
+#: stock/views.py:341
msgid "Confirm test data deletion"
msgstr "Löschen Testdaten bestätigen"
-#: stock/views.py:371
+#: stock/views.py:342
msgid "Check the confirmation box"
msgstr "Bestätigungsbox bestätigen"
-#: stock/views.py:475
+#: stock/views.py:357
msgid "Stock Item QR Code"
msgstr "Lagerartikel-QR-Code"
-#: stock/views.py:500
+#: stock/views.py:382
msgid "Uninstall Stock Items"
msgstr "Lagerartikel deinstallieren"
-#: stock/views.py:597 templates/js/translated/stock.js:1074
+#: stock/views.py:479 templates/js/translated/stock.js:1030
msgid "Confirm stock adjustment"
msgstr "Bestands-Anpassung bestätigen"
-#: stock/views.py:608
+#: stock/views.py:490
msgid "Uninstalled stock items"
msgstr "Lagerartikel deinstalliert"
-#: stock/views.py:630 templates/js/translated/stock.js:332
+#: stock/views.py:512 templates/js/translated/stock.js:331
msgid "Edit Stock Item"
msgstr "Lagerartikel bearbeiten"
-#: stock/views.py:780
+#: stock/views.py:662
msgid "Create new Stock Location"
msgstr "Neuen Lagerort erstellen"
-#: stock/views.py:881
+#: stock/views.py:763
msgid "Create new Stock Item"
msgstr "Neuen Lagerartikel hinzufügen"
-#: stock/views.py:1023 templates/js/translated/stock.js:312
+#: stock/views.py:905 templates/js/translated/stock.js:311
msgid "Duplicate Stock Item"
msgstr "Bestand duplizieren"
-#: stock/views.py:1105
+#: stock/views.py:987
msgid "Quantity cannot be negative"
msgstr "Anzahl kann nicht negativ sein"
-#: stock/views.py:1205
+#: stock/views.py:1087
msgid "Delete Stock Location"
msgstr "Bestand-Lagerort löschen"
-#: stock/views.py:1218
+#: stock/views.py:1100
msgid "Delete Stock Item"
msgstr "Lagerartikel löschen"
-#: stock/views.py:1229
+#: stock/views.py:1111
msgid "Delete Stock Tracking Entry"
msgstr "Bestand-Tracking-Eintrag löschen"
-#: stock/views.py:1236
+#: stock/views.py:1118
msgid "Edit Stock Tracking Entry"
msgstr "Bestand-Verfolgungs-Eintrag bearbeiten"
-#: stock/views.py:1245
+#: stock/views.py:1127
msgid "Add Stock Tracking Entry"
msgstr "Bestand-Verfolgungs-Eintrag hinzufügen"
@@ -7383,14 +7410,14 @@ msgid "The following parts are low on required stock"
msgstr "Bei den folgenden Teilen gibt es wenige Lagerartikel"
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1335
+#: templates/js/translated/bom.js:1340
msgid "Required Quantity"
msgstr "Benötigte Menge"
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:804 templates/js/translated/build.js:1411
-#: templates/js/translated/build.js:2057
+#: templates/js/translated/bom.js:802 templates/js/translated/build.js:1412
+#: templates/js/translated/build.js:2110
#: templates/js/translated/table_filters.js:178
msgid "Available"
msgstr "Verfügbar"
@@ -7582,7 +7609,7 @@ msgstr "Dadurch wird die Verknüpfung zwischen diesem Lagerartikel und dem Barco
msgid "Unlink"
msgstr "Entfernen"
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:982
msgid "Remove stock item"
msgstr "Lagerartikel entfernen"
@@ -7637,12 +7664,12 @@ msgid "Download BOM Template"
msgstr "Vorlage einer Stückliste herunterladen"
#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286
-#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518
+#: templates/js/translated/order.js:429 templates/js/translated/tables.js:53
msgid "Format"
msgstr "Format"
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519
+#: templates/js/translated/order.js:430
msgid "Select file format"
msgstr "Dateiformat auswählen"
@@ -7718,275 +7745,307 @@ msgstr "Ersatzteil hinzufügen"
msgid "Edit BOM Item Substitutes"
msgstr "Stücklisten Ersatzteile bearbeiten"
-#: templates/js/translated/bom.js:741
+#: templates/js/translated/bom.js:739
msgid "Substitutes Available"
msgstr "Ersatzteile verfügbar"
-#: templates/js/translated/bom.js:745 templates/js/translated/build.js:1393
+#: templates/js/translated/bom.js:743 templates/js/translated/build.js:1394
msgid "Variant stock allowed"
msgstr "Varianten erlaubt"
-#: templates/js/translated/bom.js:750
+#: templates/js/translated/bom.js:748
msgid "Open subassembly"
msgstr "Unterbaugruppe öffnen"
-#: templates/js/translated/bom.js:822
+#: templates/js/translated/bom.js:820
msgid "Substitutes"
msgstr "Ersatzteile"
-#: templates/js/translated/bom.js:837
+#: templates/js/translated/bom.js:835
msgid "Purchase Price Range"
msgstr "Kaufpreisspanne"
-#: templates/js/translated/bom.js:844
+#: templates/js/translated/bom.js:842
msgid "Purchase Price Average"
msgstr "Durchschnittlicher Kaufpreis"
-#: templates/js/translated/bom.js:893 templates/js/translated/bom.js:982
+#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980
msgid "View BOM"
msgstr "Stückliste anzeigen"
-#: templates/js/translated/bom.js:953
+#: templates/js/translated/bom.js:951
msgid "Validate BOM Item"
msgstr "Stücklisten-Position kontrollieren"
-#: templates/js/translated/bom.js:955
+#: templates/js/translated/bom.js:953
msgid "This line has been validated"
msgstr "Diese Position wurde kontrolliert"
-#: templates/js/translated/bom.js:957
+#: templates/js/translated/bom.js:955
msgid "Edit substitute parts"
msgstr "Ersatzteile bearbeiten"
-#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138
+#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143
msgid "Edit BOM Item"
msgstr "Stücklisten-Position bearbeiten"
-#: templates/js/translated/bom.js:961 templates/js/translated/bom.js:1121
+#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126
msgid "Delete BOM Item"
msgstr "Stücklisten-Position löschen"
-#: templates/js/translated/bom.js:1060 templates/js/translated/build.js:1137
+#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1138
msgid "No BOM items found"
msgstr "Keine Stücklisten-Position(en) gefunden"
-#: templates/js/translated/bom.js:1116
+#: templates/js/translated/bom.js:1121
msgid "Are you sure you want to delete this BOM item?"
msgstr "Sind Sie sicher, dass Sie diese Stücklisten-Position löschen wollen?"
-#: templates/js/translated/bom.js:1318 templates/js/translated/build.js:1377
+#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1378
msgid "Required Part"
msgstr "benötigtes Teil"
-#: templates/js/translated/bom.js:1340
+#: templates/js/translated/bom.js:1345
msgid "Inherited from parent BOM"
msgstr "Geerbt von übergeordneter Stückliste"
-#: templates/js/translated/build.js:85
+#: templates/js/translated/build.js:86
msgid "Edit Build Order"
msgstr "Bauauftrag bearbeiten"
-#: templates/js/translated/build.js:119
+#: templates/js/translated/build.js:120
msgid "Create Build Order"
msgstr "Bauauftrag erstellen"
-#: templates/js/translated/build.js:140
+#: templates/js/translated/build.js:141
msgid "Build order is ready to be completed"
msgstr "Bauauftrag ist bereit abgeschlossen zu werden"
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:146
msgid "Build Order is incomplete"
msgstr "Bauauftrag ist unvollständig"
-#: templates/js/translated/build.js:173
+#: templates/js/translated/build.js:174
msgid "Complete Build Order"
msgstr "Bauauftrag fertigstellen"
-#: templates/js/translated/build.js:214 templates/js/translated/stock.js:92
-#: templates/js/translated/stock.js:181
+#: templates/js/translated/build.js:215 templates/js/translated/stock.js:91
+#: templates/js/translated/stock.js:180
msgid "Next available serial number"
msgstr "Nächste verfügbare Seriennummer"
-#: templates/js/translated/build.js:216 templates/js/translated/stock.js:94
-#: templates/js/translated/stock.js:183
+#: templates/js/translated/build.js:217 templates/js/translated/stock.js:93
+#: templates/js/translated/stock.js:182
msgid "Latest serial number"
msgstr "Letzte Seriennummer"
-#: templates/js/translated/build.js:225
+#: templates/js/translated/build.js:226
msgid "The Bill of Materials contains trackable parts"
msgstr "Die Stückliste enthält verfolgbare Teile"
-#: templates/js/translated/build.js:226
+#: templates/js/translated/build.js:227
msgid "Build outputs must be generated individually"
msgstr "Endprodukte müssen individuell angelegt werden"
-#: templates/js/translated/build.js:234
+#: templates/js/translated/build.js:235
msgid "Trackable parts can have serial numbers specified"
msgstr "Nachverfolgbare Teile können Seriennummern haben"
-#: templates/js/translated/build.js:235
+#: templates/js/translated/build.js:236
msgid "Enter serial numbers to generate multiple single build outputs"
msgstr "Seriennummeren für mehrere einzelne Endprodukte angeben"
-#: templates/js/translated/build.js:242
+#: templates/js/translated/build.js:243
msgid "Create Build Output"
msgstr "Endprodukt anlegen"
-#: templates/js/translated/build.js:273
+#: templates/js/translated/build.js:274
msgid "Allocate stock items to this build output"
msgstr "Lagerartikel zu diesem Endprodukt zuweisen"
-#: templates/js/translated/build.js:284
+#: templates/js/translated/build.js:285
msgid "Unallocate stock from build output"
msgstr "Bestand von Endpordukt zurücknehmen"
-#: templates/js/translated/build.js:293
+#: templates/js/translated/build.js:294
msgid "Complete build output"
msgstr "Endprodukt fertigstellen"
-#: templates/js/translated/build.js:301
+#: templates/js/translated/build.js:302
msgid "Delete build output"
msgstr "Endprodukt entfernen"
-#: templates/js/translated/build.js:324
+#: templates/js/translated/build.js:325
msgid "Are you sure you wish to unallocate stock items from this build?"
msgstr "Sind Sie sicher, dass sie alle Lagerartikel von diesem Bauauftrag entfernen möchten?"
-#: templates/js/translated/build.js:342
+#: templates/js/translated/build.js:343
msgid "Unallocate Stock Items"
msgstr "Lagerartikel zurücknehmen"
-#: templates/js/translated/build.js:360 templates/js/translated/build.js:508
+#: templates/js/translated/build.js:361 templates/js/translated/build.js:509
msgid "Select Build Outputs"
msgstr "Endprodukte auswählen"
-#: templates/js/translated/build.js:361 templates/js/translated/build.js:509
+#: templates/js/translated/build.js:362 templates/js/translated/build.js:510
msgid "At least one build output must be selected"
msgstr "Mindestens ein Endprodukt muss ausgewählt werden"
-#: templates/js/translated/build.js:415 templates/js/translated/build.js:563
+#: templates/js/translated/build.js:416 templates/js/translated/build.js:564
msgid "Output"
msgstr "Endprodukt"
-#: templates/js/translated/build.js:431
+#: templates/js/translated/build.js:432
msgid "Complete Build Outputs"
msgstr "Endprodukte fertigstellen"
-#: templates/js/translated/build.js:576
+#: templates/js/translated/build.js:577
msgid "Delete Build Outputs"
msgstr "Endprodukte entfernen"
-#: templates/js/translated/build.js:665
+#: templates/js/translated/build.js:666
msgid "No build order allocations found"
msgstr "Keine Allokationen für Bauauftrag gefunden"
-#: templates/js/translated/build.js:703 templates/js/translated/order.js:1965
+#: templates/js/translated/build.js:704 templates/js/translated/order.js:2053
msgid "Location not specified"
msgstr "Standort nicht angegeben"
-#: templates/js/translated/build.js:885
+#: templates/js/translated/build.js:886
msgid "No active build outputs found"
msgstr "Keine aktiven Endprodukte gefunden"
-#: templates/js/translated/build.js:1334 templates/js/translated/build.js:2068
-#: templates/js/translated/order.js:2099
+#: templates/js/translated/build.js:1335 templates/js/translated/build.js:2121
+#: templates/js/translated/order.js:2187
msgid "Edit stock allocation"
msgstr "Bestands-Zuordnung bearbeiten"
-#: templates/js/translated/build.js:1336 templates/js/translated/build.js:2069
-#: templates/js/translated/order.js:2100
+#: templates/js/translated/build.js:1337 templates/js/translated/build.js:2122
+#: templates/js/translated/order.js:2188
msgid "Delete stock allocation"
msgstr "Bestands-Zuordnung löschen"
-#: templates/js/translated/build.js:1354
+#: templates/js/translated/build.js:1355
msgid "Edit Allocation"
msgstr "Zuordnung bearbeiten"
-#: templates/js/translated/build.js:1364
+#: templates/js/translated/build.js:1365
msgid "Remove Allocation"
msgstr "Zuordnung entfernen"
-#: templates/js/translated/build.js:1389
+#: templates/js/translated/build.js:1390
msgid "Substitute parts available"
msgstr "Ersatzteile verfügbar"
-#: templates/js/translated/build.js:1406
+#: templates/js/translated/build.js:1407
msgid "Quantity Per"
msgstr "Anzahl pro"
-#: templates/js/translated/build.js:1416 templates/js/translated/build.js:1656
-#: templates/js/translated/build.js:2064 templates/js/translated/order.js:2366
+#: templates/js/translated/build.js:1417 templates/js/translated/build.js:1667
+#: templates/js/translated/build.js:2117 templates/js/translated/order.js:2454
msgid "Allocated"
msgstr "Zugeordnet"
-#: templates/js/translated/build.js:1472 templates/js/translated/order.js:2446
+#: templates/js/translated/build.js:1473 templates/js/translated/order.js:2534
msgid "Build stock"
msgstr "Bestand bauen"
-#: templates/js/translated/build.js:1476 templates/stock_table.html:53
+#: templates/js/translated/build.js:1477 templates/stock_table.html:50
msgid "Order stock"
msgstr "Bestand bestellen"
-#: templates/js/translated/build.js:1479 templates/js/translated/order.js:2439
+#: templates/js/translated/build.js:1480 templates/js/translated/order.js:2527
msgid "Allocate stock"
msgstr "Bestand zuweisen"
-#: templates/js/translated/build.js:1558 templates/js/translated/order.js:1616
-msgid "Specify stock allocation quantity"
-msgstr "Anzahl für Bestandszuordnung eingeben"
-
-#: templates/js/translated/build.js:1629 templates/js/translated/label.js:134
-#: templates/js/translated/order.js:1667 templates/js/translated/report.js:225
+#: templates/js/translated/build.js:1519 templates/js/translated/label.js:134
+#: templates/js/translated/order.js:1755 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr "Teile auswählen"
-#: templates/js/translated/build.js:1630 templates/js/translated/order.js:1668
+#: templates/js/translated/build.js:1520 templates/js/translated/order.js:1756
msgid "You must select at least one part to allocate"
msgstr "Sie müssen mindestens ein Teil auswählen"
-#: templates/js/translated/build.js:1644 templates/js/translated/order.js:1682
+#: templates/js/translated/build.js:1569 templates/js/translated/order.js:1704
+msgid "Specify stock allocation quantity"
+msgstr "Anzahl für Bestandszuordnung eingeben"
+
+#: templates/js/translated/build.js:1640
+msgid "All Parts Allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:1641
+msgid "All selected parts have been fully allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:1655 templates/js/translated/order.js:1770
msgid "Select source location (leave blank to take from all locations)"
msgstr "Wählen Sie den Quellort aus (leer lassen um von allen Standorten zu nehmen)"
-#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1717
+#: templates/js/translated/build.js:1684 templates/js/translated/order.js:1805
msgid "Confirm stock allocation"
msgstr "Bestandszuordnung bestätigen"
-#: templates/js/translated/build.js:1674
+#: templates/js/translated/build.js:1685
msgid "Allocate Stock Items to Build Order"
msgstr "Lagerartikel für Bauauftrag zuweisen"
-#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1730
+#: templates/js/translated/build.js:1696 templates/js/translated/order.js:1818
msgid "No matching stock locations"
msgstr "Keine passenden Lagerstandorte"
-#: templates/js/translated/build.js:1757 templates/js/translated/order.js:1807
+#: templates/js/translated/build.js:1768 templates/js/translated/order.js:1895
msgid "No matching stock items"
msgstr "Keine passenden Lagerbestände"
-#: templates/js/translated/build.js:1875
+#: templates/js/translated/build.js:1865
+msgid "Automatic Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1866
+msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
+msgstr ""
+
+#: templates/js/translated/build.js:1868
+msgid "If a location is specifed, stock will only be allocated from that location"
+msgstr ""
+
+#: templates/js/translated/build.js:1869
+msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
+msgstr ""
+
+#: templates/js/translated/build.js:1870
+msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
+msgstr ""
+
+#: templates/js/translated/build.js:1890
+msgid "Allocate Stock Items"
+msgstr ""
+
+#: templates/js/translated/build.js:1928
msgid "No builds matching query"
msgstr "Keine Bauaufträge passen zur Anfrage"
-#: templates/js/translated/build.js:1892 templates/js/translated/part.js:1235
-#: templates/js/translated/part.js:1646 templates/js/translated/stock.js:1643
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/build.js:1945 templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1647 templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:2567
msgid "Select"
msgstr "Auswählen"
-#: templates/js/translated/build.js:1912
+#: templates/js/translated/build.js:1965
msgid "Build order is overdue"
msgstr "Bauauftrag ist überfällig"
-#: templates/js/translated/build.js:1976 templates/js/translated/stock.js:2823
+#: templates/js/translated/build.js:2029 templates/js/translated/stock.js:2779
msgid "No user information"
msgstr "Keine Benutzerinformation"
-#: templates/js/translated/build.js:1988
+#: templates/js/translated/build.js:2041
msgid "No information"
msgstr "Keine Information"
-#: templates/js/translated/build.js:2045
+#: templates/js/translated/build.js:2098
msgid "No parts allocated for"
msgstr "Keine Teile zugeordnet zu"
@@ -8051,34 +8110,34 @@ msgid "No manufacturer parts found"
msgstr "Keine Herstellerteile gefunden"
#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:517
-#: templates/js/translated/part.js:602
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:518
+#: templates/js/translated/part.js:603
msgid "Template part"
msgstr "Vorlagenteil"
#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:521
-#: templates/js/translated/part.js:606
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:522
+#: templates/js/translated/part.js:607
msgid "Assembled part"
msgstr "Baugruppe"
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:696
+#: templates/js/translated/company.js:631 templates/js/translated/part.js:697
msgid "No parameters found"
msgstr "Keine Parameter gefunden"
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:738
+#: templates/js/translated/company.js:668 templates/js/translated/part.js:739
msgid "Edit parameter"
msgstr "Parameter bearbeiten"
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:739
+#: templates/js/translated/company.js:669 templates/js/translated/part.js:740
msgid "Delete parameter"
msgstr "Parameter löschen"
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:756
+#: templates/js/translated/company.js:688 templates/js/translated/part.js:757
msgid "Edit Parameter"
msgstr "Parameter bearbeiten"
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:768
+#: templates/js/translated/company.js:699 templates/js/translated/part.js:769
msgid "Delete Parameter"
msgstr "Parameter löschen"
@@ -8087,12 +8146,12 @@ msgid "No supplier parts found"
msgstr "Keine Zuliefererteile gefunden"
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:429
+#: templates/js/translated/filters.js:441
msgid "true"
msgstr "ja"
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:430
+#: templates/js/translated/filters.js:442
msgid "false"
msgstr "nein"
@@ -8100,19 +8159,23 @@ msgstr "nein"
msgid "Select filter"
msgstr "Filter auswählen"
-#: templates/js/translated/filters.js:286
+#: templates/js/translated/filters.js:288
+msgid "Download data"
+msgstr "Daten herunterladen"
+
+#: templates/js/translated/filters.js:291
msgid "Reload data"
msgstr "Daten neu laden"
-#: templates/js/translated/filters.js:290
+#: templates/js/translated/filters.js:295
msgid "Add new filter"
msgstr "Filter hinzufügen"
-#: templates/js/translated/filters.js:293
+#: templates/js/translated/filters.js:298
msgid "Clear all filters"
msgstr "Filter entfernen"
-#: templates/js/translated/filters.js:338
+#: templates/js/translated/filters.js:350
msgid "Create filter"
msgstr "Filter anlegen"
@@ -8183,7 +8246,7 @@ msgid "NO"
msgstr "NEIN"
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1050
+#: templates/js/translated/stock.js:1006
msgid "Select Stock Items"
msgstr "Lagerartikel auswählen"
@@ -8356,206 +8419,214 @@ msgstr "Kunden hinzufügen"
msgid "Create Sales Order"
msgstr "Auftrag anlegen"
-#: templates/js/translated/order.js:366
+#: templates/js/translated/order.js:426
msgid "Export Order"
msgstr "Bestellung exportieren"
-#: templates/js/translated/order.js:460
+#: templates/js/translated/order.js:520
msgid "Select Line Items"
msgstr "Positionen auswählen"
-#: templates/js/translated/order.js:461
+#: templates/js/translated/order.js:521
msgid "At least one line item must be selected"
msgstr "Mindestens eine Position muss ausgewählt werden"
-#: templates/js/translated/order.js:481 templates/js/translated/order.js:580
+#: templates/js/translated/order.js:541 templates/js/translated/order.js:640
msgid "Add batch code"
msgstr "Losnummer hinzufügen"
-#: templates/js/translated/order.js:487 templates/js/translated/order.js:591
+#: templates/js/translated/order.js:547 templates/js/translated/order.js:651
msgid "Add serial numbers"
msgstr "Seriennummern hinzufügen"
-#: templates/js/translated/order.js:499
+#: templates/js/translated/order.js:559
msgid "Quantity to receive"
msgstr "Zu erhaltende Menge"
-#: templates/js/translated/order.js:563 templates/js/translated/stock.js:2263
+#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2219
msgid "Stock Status"
msgstr "Status"
-#: templates/js/translated/order.js:652
+#: templates/js/translated/order.js:712
msgid "Order Code"
msgstr "Bestellnummer"
-#: templates/js/translated/order.js:653
+#: templates/js/translated/order.js:713
msgid "Ordered"
msgstr "Bestellt"
-#: templates/js/translated/order.js:655
+#: templates/js/translated/order.js:715
msgid "Quantity to Receive"
msgstr "Zu erhaltende Menge"
-#: templates/js/translated/order.js:674
+#: templates/js/translated/order.js:734
msgid "Confirm receipt of items"
msgstr "Empfang der Teile bestätigen"
-#: templates/js/translated/order.js:675
+#: templates/js/translated/order.js:735
msgid "Receive Purchase Order Items"
msgstr "Bestellpositionen erhalten"
-#: templates/js/translated/order.js:865 templates/js/translated/part.js:809
+#: templates/js/translated/order.js:925 templates/js/translated/part.js:810
msgid "No purchase orders found"
msgstr "Keine Bestellungen gefunden"
-#: templates/js/translated/order.js:890 templates/js/translated/order.js:1338
+#: templates/js/translated/order.js:950 templates/js/translated/order.js:1426
msgid "Order is overdue"
msgstr "Bestellung überfällig"
-#: templates/js/translated/order.js:1018 templates/js/translated/order.js:2496
+#: templates/js/translated/order.js:1074 templates/js/translated/order.js:2585
+msgid "Duplicate Line Item"
+msgstr "Position duplizieren"
+
+#: templates/js/translated/order.js:1104 templates/js/translated/order.js:2607
msgid "Edit Line Item"
msgstr "Position bearbeiten"
-#: templates/js/translated/order.js:1030 templates/js/translated/order.js:2507
+#: templates/js/translated/order.js:1117 templates/js/translated/order.js:2618
msgid "Delete Line Item"
msgstr "Position löschen"
-#: templates/js/translated/order.js:1073
+#: templates/js/translated/order.js:1160
msgid "No line items found"
msgstr "Keine Positionen gefunden"
-#: templates/js/translated/order.js:1100 templates/js/translated/order.js:2255
+#: templates/js/translated/order.js:1187 templates/js/translated/order.js:2343
msgid "Total"
msgstr "Summe"
-#: templates/js/translated/order.js:1154 templates/js/translated/order.js:2280
-#: templates/js/translated/part.js:1863 templates/js/translated/part.js:2074
+#: templates/js/translated/order.js:1241 templates/js/translated/order.js:2368
+#: templates/js/translated/part.js:1864 templates/js/translated/part.js:2075
msgid "Unit Price"
msgstr "Stück-Preis"
-#: templates/js/translated/order.js:1169 templates/js/translated/order.js:2296
+#: templates/js/translated/order.js:1256 templates/js/translated/order.js:2384
msgid "Total Price"
msgstr "Gesamtpreis"
-#: templates/js/translated/order.js:1210 templates/js/translated/order.js:2338
-#: templates/js/translated/part.js:918
+#: templates/js/translated/order.js:1297 templates/js/translated/order.js:2426
+#: templates/js/translated/part.js:919
msgid "This line item is overdue"
msgstr "Diese Position ist überfällig"
-#: templates/js/translated/order.js:1269 templates/js/translated/part.js:964
+#: templates/js/translated/order.js:1356 templates/js/translated/part.js:965
msgid "Receive line item"
msgstr "Position empfangen"
-#: templates/js/translated/order.js:1273 templates/js/translated/order.js:2452
+#: templates/js/translated/order.js:1360 templates/js/translated/order.js:2540
+msgid "Duplicate line item"
+msgstr "Position duplizieren"
+
+#: templates/js/translated/order.js:1361 templates/js/translated/order.js:2541
msgid "Edit line item"
msgstr "Position bearbeiten"
-#: templates/js/translated/order.js:1274 templates/js/translated/order.js:2456
+#: templates/js/translated/order.js:1362 templates/js/translated/order.js:2545
msgid "Delete line item"
msgstr "Position löschen"
-#: templates/js/translated/order.js:1314
+#: templates/js/translated/order.js:1402
msgid "No sales orders found"
msgstr "Keine Aufträge gefunden"
-#: templates/js/translated/order.js:1352
+#: templates/js/translated/order.js:1440
msgid "Invalid Customer"
msgstr "Ungültiger Kunde"
-#: templates/js/translated/order.js:1439
+#: templates/js/translated/order.js:1527
msgid "Edit shipment"
msgstr "Sendung bearbeiten"
-#: templates/js/translated/order.js:1442
+#: templates/js/translated/order.js:1530
msgid "Complete shipment"
msgstr "Sendung fertigstellen"
-#: templates/js/translated/order.js:1447
+#: templates/js/translated/order.js:1535
msgid "Delete shipment"
msgstr "Sendung löschen"
-#: templates/js/translated/order.js:1467
+#: templates/js/translated/order.js:1555
msgid "Edit Shipment"
msgstr "Sendung bearbeiten"
-#: templates/js/translated/order.js:1484
+#: templates/js/translated/order.js:1572
msgid "Delete Shipment"
msgstr "Sendung löschen"
-#: templates/js/translated/order.js:1518
+#: templates/js/translated/order.js:1606
msgid "No matching shipments found"
msgstr "Keine passenden Sendungen gefunden"
-#: templates/js/translated/order.js:1528
+#: templates/js/translated/order.js:1616
msgid "Shipment Reference"
msgstr "Sendungsreferenz"
-#: templates/js/translated/order.js:1552
+#: templates/js/translated/order.js:1640
msgid "Not shipped"
msgstr "Nicht versandt"
-#: templates/js/translated/order.js:1558
+#: templates/js/translated/order.js:1646
msgid "Tracking"
msgstr "Nachverfolgen"
-#: templates/js/translated/order.js:1718
+#: templates/js/translated/order.js:1806
msgid "Allocate Stock Items to Sales Order"
msgstr "Artikel zu Kundenauftrag zuweisen"
-#: templates/js/translated/order.js:1926
+#: templates/js/translated/order.js:2014
msgid "No sales order allocations found"
msgstr "Keine Allokationen für Verkaufsaufträge gefunden"
-#: templates/js/translated/order.js:2015
+#: templates/js/translated/order.js:2103
msgid "Edit Stock Allocation"
msgstr "Bestandszuordnung bearbeiten"
-#: templates/js/translated/order.js:2032
+#: templates/js/translated/order.js:2120
msgid "Confirm Delete Operation"
msgstr "Löschvorgang bestätigen"
-#: templates/js/translated/order.js:2033
+#: templates/js/translated/order.js:2121
msgid "Delete Stock Allocation"
msgstr "Bestands-Zuordnung löschen"
-#: templates/js/translated/order.js:2076 templates/js/translated/order.js:2165
-#: templates/js/translated/stock.js:1559
+#: templates/js/translated/order.js:2164 templates/js/translated/order.js:2253
+#: templates/js/translated/stock.js:1515
msgid "Shipped to customer"
msgstr "an Kunde versand"
-#: templates/js/translated/order.js:2084 templates/js/translated/order.js:2174
+#: templates/js/translated/order.js:2172 templates/js/translated/order.js:2262
msgid "Stock location not specified"
msgstr "Lagerstandort nicht angegeben"
-#: templates/js/translated/order.js:2436
+#: templates/js/translated/order.js:2524
msgid "Allocate serial numbers"
msgstr "Seriennummern zuweisen"
-#: templates/js/translated/order.js:2442
+#: templates/js/translated/order.js:2530
msgid "Purchase stock"
msgstr "Bestand kaufen"
-#: templates/js/translated/order.js:2449 templates/js/translated/order.js:2616
+#: templates/js/translated/order.js:2537 templates/js/translated/order.js:2727
msgid "Calculate price"
msgstr "Preis berechnen"
-#: templates/js/translated/order.js:2460
+#: templates/js/translated/order.js:2549
msgid "Cannot be deleted as items have been shipped"
msgstr "Kann nicht gelöscht werden, da Artikel versandt wurden"
-#: templates/js/translated/order.js:2463
+#: templates/js/translated/order.js:2552
msgid "Cannot be deleted as items have been allocated"
msgstr "Kann nicht gelöscht werden, da Artikel zugewiesen sind"
-#: templates/js/translated/order.js:2522
+#: templates/js/translated/order.js:2633
msgid "Allocate Serial Numbers"
msgstr "Seriennummern zuweisen"
-#: templates/js/translated/order.js:2624
+#: templates/js/translated/order.js:2735
msgid "Update Unit Price"
msgstr "Stückpreis aktualisieren"
-#: templates/js/translated/order.js:2638
+#: templates/js/translated/order.js:2749
msgid "No matching line items"
msgstr "Keine passenden Positionen gefunden"
@@ -8679,117 +8750,117 @@ msgstr "Stückliste prüfen"
msgid "Validated Bill of Materials"
msgstr "überprüfte Stückliste"
-#: templates/js/translated/part.js:481
+#: templates/js/translated/part.js:482
msgid "Copy Bill of Materials"
msgstr "Stückliste kopieren"
-#: templates/js/translated/part.js:509 templates/js/translated/part.js:594
+#: templates/js/translated/part.js:510 templates/js/translated/part.js:595
msgid "Trackable part"
msgstr "Nachverfolgbares Teil"
-#: templates/js/translated/part.js:513 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:514 templates/js/translated/part.js:599
msgid "Virtual part"
msgstr "virtuelles Teil"
-#: templates/js/translated/part.js:525
+#: templates/js/translated/part.js:526
msgid "Subscribed part"
msgstr "Abonnierter Teil"
-#: templates/js/translated/part.js:529
+#: templates/js/translated/part.js:530
msgid "Salable part"
msgstr "Verkäufliches Teil"
-#: templates/js/translated/part.js:644
+#: templates/js/translated/part.js:645
msgid "No variants found"
msgstr "Keine Varianten gefunden"
-#: templates/js/translated/part.js:1034
+#: templates/js/translated/part.js:1035
msgid "Delete part relationship"
msgstr "Teile-Beziehung löschen"
-#: templates/js/translated/part.js:1058
+#: templates/js/translated/part.js:1059
msgid "Delete Part Relationship"
msgstr "Teile-Beziehung löschen"
-#: templates/js/translated/part.js:1125 templates/js/translated/part.js:1385
+#: templates/js/translated/part.js:1126 templates/js/translated/part.js:1386
msgid "No parts found"
msgstr "Keine Teile gefunden"
-#: templates/js/translated/part.js:1295
+#: templates/js/translated/part.js:1296
msgid "No category"
msgstr "Keine Kategorie"
-#: templates/js/translated/part.js:1318
+#: templates/js/translated/part.js:1319
#: templates/js/translated/table_filters.js:425
msgid "Low stock"
msgstr "Bestand niedrig"
-#: templates/js/translated/part.js:1409 templates/js/translated/part.js:1581
-#: templates/js/translated/stock.js:2572
+#: templates/js/translated/part.js:1410 templates/js/translated/part.js:1582
+#: templates/js/translated/stock.js:2528
msgid "Display as list"
msgstr "Listenansicht"
-#: templates/js/translated/part.js:1425
+#: templates/js/translated/part.js:1426
msgid "Display as grid"
msgstr "Rasteransicht"
-#: templates/js/translated/part.js:1600 templates/js/translated/stock.js:2591
+#: templates/js/translated/part.js:1601 templates/js/translated/stock.js:2547
msgid "Display as tree"
msgstr "Baumansicht"
-#: templates/js/translated/part.js:1664
+#: templates/js/translated/part.js:1665
msgid "Subscribed category"
msgstr "Abonnierte Kategorie"
-#: templates/js/translated/part.js:1678 templates/js/translated/stock.js:2635
+#: templates/js/translated/part.js:1679 templates/js/translated/stock.js:2591
msgid "Path"
msgstr "Pfad"
-#: templates/js/translated/part.js:1722
+#: templates/js/translated/part.js:1723
msgid "No test templates matching query"
msgstr "Keine zur Anfrage passenden Testvorlagen"
-#: templates/js/translated/part.js:1773 templates/js/translated/stock.js:1270
+#: templates/js/translated/part.js:1774 templates/js/translated/stock.js:1226
msgid "Edit test result"
msgstr "Testergebnis bearbeiten"
-#: templates/js/translated/part.js:1774 templates/js/translated/stock.js:1271
-#: templates/js/translated/stock.js:1517
+#: templates/js/translated/part.js:1775 templates/js/translated/stock.js:1227
+#: templates/js/translated/stock.js:1473
msgid "Delete test result"
msgstr "Testergebnis löschen"
-#: templates/js/translated/part.js:1780
+#: templates/js/translated/part.js:1781
msgid "This test is defined for a parent part"
msgstr "Dieses Testergebnis ist für ein Hauptteil"
-#: templates/js/translated/part.js:1802
+#: templates/js/translated/part.js:1803
msgid "Edit Test Result Template"
msgstr "Testergebnis-Vorlage bearbeiten"
-#: templates/js/translated/part.js:1816
+#: templates/js/translated/part.js:1817
msgid "Delete Test Result Template"
msgstr "Testergebnis-Vorlage löschen"
-#: templates/js/translated/part.js:1841
+#: templates/js/translated/part.js:1842
#, python-brace-format
msgid "No ${human_name} information found"
msgstr "Keine ${human_name} Informationen gefunden"
-#: templates/js/translated/part.js:1896
+#: templates/js/translated/part.js:1897
#, python-brace-format
msgid "Edit ${human_name}"
msgstr "${human_name} bearbeiten"
-#: templates/js/translated/part.js:1897
+#: templates/js/translated/part.js:1898
#, python-brace-format
msgid "Delete ${human_name}"
msgstr "${human_name} löschen"
-#: templates/js/translated/part.js:1998
+#: templates/js/translated/part.js:1999
msgid "Single Price"
msgstr "Einzelpreis"
-#: templates/js/translated/part.js:2017
+#: templates/js/translated/part.js:2018
msgid "Single Price Difference"
msgstr "Einzelpreisdifferenz"
@@ -8863,368 +8934,356 @@ msgstr "Aufträge auswählen"
msgid "Sales Order(s) must be selected before printing report"
msgstr "Auftrag muss vor dem Berichtsdruck ausgewählt werden"
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr "Lagerartikel serialisieren"
-#: templates/js/translated/stock.js:102
+#: templates/js/translated/stock.js:101
msgid "Confirm Stock Serialization"
msgstr "Lager-Serialisierung bestätigen"
-#: templates/js/translated/stock.js:111
+#: templates/js/translated/stock.js:110
msgid "Parent stock location"
msgstr "Übergeordneter Lagerort"
-#: templates/js/translated/stock.js:154
+#: templates/js/translated/stock.js:153
msgid "New Stock Location"
msgstr "Neuer Lagerstandort"
-#: templates/js/translated/stock.js:194
+#: templates/js/translated/stock.js:193
msgid "This part cannot be serialized"
msgstr "Dieser Teil kann nicht serialisiert werden"
-#: templates/js/translated/stock.js:233
+#: templates/js/translated/stock.js:232
msgid "Enter initial quantity for this stock item"
msgstr "Ausgangsmenge für diesen Lagerartikel eingeben"
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/stock.js:238
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr "Seriennummern für neue Lagerartikel eingeben (oder leer lassen)"
-#: templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:381
msgid "Created new stock item"
msgstr "Neuer Lagerartikel erstellt"
-#: templates/js/translated/stock.js:395
+#: templates/js/translated/stock.js:394
msgid "Created multiple stock items"
msgstr "Mehrere Lagerartikel erstellt"
-#: templates/js/translated/stock.js:420
+#: templates/js/translated/stock.js:419
msgid "Find Serial Number"
msgstr "Seriennummer finden"
-#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425
+#: templates/js/translated/stock.js:423 templates/js/translated/stock.js:424
msgid "Enter serial number"
msgstr "Seriennummer eingeben"
-#: templates/js/translated/stock.js:441
+#: templates/js/translated/stock.js:440
msgid "Enter a serial number"
msgstr "Eine Seriennummer eingeben"
-#: templates/js/translated/stock.js:461
+#: templates/js/translated/stock.js:460
msgid "No matching serial number"
msgstr "Keine passende Seriennummer"
-#: templates/js/translated/stock.js:470
+#: templates/js/translated/stock.js:469
msgid "More than one matching result found"
msgstr "Mehrere Ergebnisse gefunden"
-#: templates/js/translated/stock.js:515
-msgid "Export Stock"
-msgstr "Bestand exportieren"
-
-#: templates/js/translated/stock.js:526
-msgid "Include Sublocations"
-msgstr "Einschließlich Unterstandorte"
-
-#: templates/js/translated/stock.js:527
-msgid "Include stock items in sublocations"
-msgstr "Lagerartikel in untergeordneten Lagerorten einschließen"
-
-#: templates/js/translated/stock.js:636
+#: templates/js/translated/stock.js:592
msgid "Confirm stock assignment"
msgstr "Bestand Zuweisung bestätigen"
-#: templates/js/translated/stock.js:637
+#: templates/js/translated/stock.js:593
msgid "Assign Stock to Customer"
msgstr "Einem Kunden zuordnen"
-#: templates/js/translated/stock.js:714
+#: templates/js/translated/stock.js:670
msgid "Warning: Merge operation cannot be reversed"
msgstr "Achtung: Das Zusammenführen kann nicht rückgängig gemacht werden"
-#: templates/js/translated/stock.js:715
+#: templates/js/translated/stock.js:671
msgid "Some information will be lost when merging stock items"
msgstr "Einige Informationen gehen verloren, wenn Artikel zusammengeführt werden"
-#: templates/js/translated/stock.js:717
+#: templates/js/translated/stock.js:673
msgid "Stock transaction history will be deleted for merged items"
msgstr "Lagerartikelverlauf wird für zusammengeführte Lagerartikel gelöscht"
-#: templates/js/translated/stock.js:718
+#: templates/js/translated/stock.js:674
msgid "Supplier part information will be deleted for merged items"
msgstr "Lieferantenteil-Informationen werden für zusammengeführte Artikel gelöscht"
-#: templates/js/translated/stock.js:804
+#: templates/js/translated/stock.js:760
msgid "Confirm stock item merge"
msgstr "Zusammenführung der Artikel bestätigen"
-#: templates/js/translated/stock.js:805
+#: templates/js/translated/stock.js:761
msgid "Merge Stock Items"
msgstr "Artikel zusammenführen"
-#: templates/js/translated/stock.js:900
+#: templates/js/translated/stock.js:856
msgid "Transfer Stock"
msgstr "Bestand verschieben"
-#: templates/js/translated/stock.js:901
+#: templates/js/translated/stock.js:857
msgid "Move"
msgstr "Verschieben"
-#: templates/js/translated/stock.js:907
+#: templates/js/translated/stock.js:863
msgid "Count Stock"
msgstr "Bestand zählen"
-#: templates/js/translated/stock.js:908
+#: templates/js/translated/stock.js:864
msgid "Count"
msgstr "Anzahl"
-#: templates/js/translated/stock.js:912
+#: templates/js/translated/stock.js:868
msgid "Remove Stock"
msgstr "Bestand entfernen"
-#: templates/js/translated/stock.js:913
+#: templates/js/translated/stock.js:869
msgid "Take"
msgstr "Entfernen"
-#: templates/js/translated/stock.js:917
+#: templates/js/translated/stock.js:873
msgid "Add Stock"
msgstr "Bestand hinzufügen"
-#: templates/js/translated/stock.js:918 users/models.py:213
+#: templates/js/translated/stock.js:874 users/models.py:213
msgid "Add"
msgstr "Hinzufügen"
-#: templates/js/translated/stock.js:922
+#: templates/js/translated/stock.js:878
msgid "Delete Stock"
msgstr "Bestand löschen"
-#: templates/js/translated/stock.js:1011
+#: templates/js/translated/stock.js:967
msgid "Quantity cannot be adjusted for serialized stock"
msgstr "Menge von serialisiertem Bestand kann nicht bearbeitet werden"
-#: templates/js/translated/stock.js:1011
+#: templates/js/translated/stock.js:967
msgid "Specify stock quantity"
msgstr "Bestandsanzahl angeben"
-#: templates/js/translated/stock.js:1051
+#: templates/js/translated/stock.js:1007
msgid "You must select at least one available stock item"
msgstr "Sie müssen mindestens einen Lagerartikel auswählen"
-#: templates/js/translated/stock.js:1209
+#: templates/js/translated/stock.js:1165
msgid "PASS"
msgstr "ERFOLGREICH"
-#: templates/js/translated/stock.js:1211
+#: templates/js/translated/stock.js:1167
msgid "FAIL"
msgstr "FEHLGESCHLAGEN"
-#: templates/js/translated/stock.js:1216
+#: templates/js/translated/stock.js:1172
msgid "NO RESULT"
msgstr "KEIN ERGEBNIS"
-#: templates/js/translated/stock.js:1263
+#: templates/js/translated/stock.js:1219
msgid "Pass test"
msgstr "Test bestanden"
-#: templates/js/translated/stock.js:1266
+#: templates/js/translated/stock.js:1222
msgid "Add test result"
msgstr "Testergebnis hinzufügen"
-#: templates/js/translated/stock.js:1292
+#: templates/js/translated/stock.js:1248
msgid "No test results found"
msgstr "Keine Testergebnisse gefunden"
-#: templates/js/translated/stock.js:1348
+#: templates/js/translated/stock.js:1304
msgid "Test Date"
msgstr "Testdatum"
-#: templates/js/translated/stock.js:1500
+#: templates/js/translated/stock.js:1456
msgid "Edit Test Result"
msgstr "Testergebnis bearbeiten"
-#: templates/js/translated/stock.js:1522
+#: templates/js/translated/stock.js:1478
msgid "Delete Test Result"
msgstr "Testergebnis löschen"
-#: templates/js/translated/stock.js:1551
+#: templates/js/translated/stock.js:1507
msgid "In production"
msgstr "In Arbeit"
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1511
msgid "Installed in Stock Item"
msgstr "In Lagerartikel installiert"
-#: templates/js/translated/stock.js:1563
+#: templates/js/translated/stock.js:1519
msgid "Assigned to Sales Order"
msgstr "Auftrag zugewiesen"
-#: templates/js/translated/stock.js:1569
+#: templates/js/translated/stock.js:1525
msgid "No stock location set"
msgstr "Kein Lagerort gesetzt"
-#: templates/js/translated/stock.js:1727
+#: templates/js/translated/stock.js:1683
msgid "Stock item is in production"
msgstr "Lagerartikel wird produziert"
-#: templates/js/translated/stock.js:1732
+#: templates/js/translated/stock.js:1688
msgid "Stock item assigned to sales order"
msgstr "Lagerartikel wurde Auftrag zugewiesen"
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1691
msgid "Stock item assigned to customer"
msgstr "Lagerartikel wurde Kunden zugewiesen"
-#: templates/js/translated/stock.js:1739
+#: templates/js/translated/stock.js:1695
msgid "Stock item has expired"
msgstr "Lagerartikel ist abgelaufen"
-#: templates/js/translated/stock.js:1741
+#: templates/js/translated/stock.js:1697
msgid "Stock item will expire soon"
msgstr "Lagerartikel läuft demnächst ab"
-#: templates/js/translated/stock.js:1747
+#: templates/js/translated/stock.js:1703
msgid "Serialized stock item has been allocated"
msgstr "Serialisierter Lagerartikel wurde zugewiesen"
-#: templates/js/translated/stock.js:1749
+#: templates/js/translated/stock.js:1705
msgid "Stock item has been fully allocated"
msgstr "Lagerartikel wurde vollständig zugewiesen"
-#: templates/js/translated/stock.js:1751
+#: templates/js/translated/stock.js:1707
msgid "Stock item has been partially allocated"
msgstr "Lagerartikel wurde teilweise zugewiesen"
-#: templates/js/translated/stock.js:1756
+#: templates/js/translated/stock.js:1712
msgid "Stock item has been installed in another item"
msgstr "Lagerartikel in anderem Element verbaut"
-#: templates/js/translated/stock.js:1763
+#: templates/js/translated/stock.js:1719
msgid "Stock item has been rejected"
msgstr "Lagerartikel abgewiesen"
-#: templates/js/translated/stock.js:1765
+#: templates/js/translated/stock.js:1721
msgid "Stock item is lost"
msgstr "Lagerartikel verloren"
-#: templates/js/translated/stock.js:1767
+#: templates/js/translated/stock.js:1723
msgid "Stock item is destroyed"
msgstr "Lagerartikel zerstört"
-#: templates/js/translated/stock.js:1771
+#: templates/js/translated/stock.js:1727
#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr "gelöscht"
-#: templates/js/translated/stock.js:1821
+#: templates/js/translated/stock.js:1777
msgid "Stocktake"
msgstr "Inventur"
-#: templates/js/translated/stock.js:1903
+#: templates/js/translated/stock.js:1859
msgid "Supplier part not specified"
msgstr "Zuliefererteil nicht angegeben"
-#: templates/js/translated/stock.js:1941
+#: templates/js/translated/stock.js:1897
msgid "No stock items matching query"
msgstr "Keine zur Anfrage passenden Lagerartikel"
-#: templates/js/translated/stock.js:1962 templates/js/translated/stock.js:2010
+#: templates/js/translated/stock.js:1918 templates/js/translated/stock.js:1966
msgid "items"
msgstr "Teile"
-#: templates/js/translated/stock.js:2050
+#: templates/js/translated/stock.js:2006
msgid "batches"
msgstr "lose"
-#: templates/js/translated/stock.js:2077
+#: templates/js/translated/stock.js:2033
msgid "locations"
msgstr "Lagerorte"
-#: templates/js/translated/stock.js:2079
+#: templates/js/translated/stock.js:2035
msgid "Undefined location"
msgstr "unbekannter Lagerort"
-#: templates/js/translated/stock.js:2278
+#: templates/js/translated/stock.js:2234
msgid "Set Stock Status"
msgstr "Status setzen"
-#: templates/js/translated/stock.js:2292
+#: templates/js/translated/stock.js:2248
msgid "Select Status Code"
msgstr "Status Code setzen"
-#: templates/js/translated/stock.js:2293
+#: templates/js/translated/stock.js:2249
msgid "Status code must be selected"
msgstr "Status Code muss ausgewählt werden"
-#: templates/js/translated/stock.js:2472
+#: templates/js/translated/stock.js:2428
msgid "Allocated Quantity"
msgstr "Zugewiesene Menge"
-#: templates/js/translated/stock.js:2682
+#: templates/js/translated/stock.js:2638
msgid "Details"
msgstr "Details"
-#: templates/js/translated/stock.js:2707
+#: templates/js/translated/stock.js:2663
msgid "Location no longer exists"
msgstr "Standort nicht mehr vorhanden"
-#: templates/js/translated/stock.js:2726
+#: templates/js/translated/stock.js:2682
msgid "Purchase order no longer exists"
msgstr "Bestellung existiert nicht mehr"
-#: templates/js/translated/stock.js:2745
+#: templates/js/translated/stock.js:2701
msgid "Customer no longer exists"
msgstr "Kunde existiert nicht mehr"
-#: templates/js/translated/stock.js:2763
+#: templates/js/translated/stock.js:2719
msgid "Stock item no longer exists"
msgstr "Lagerartikel existiert nicht mehr"
-#: templates/js/translated/stock.js:2786
+#: templates/js/translated/stock.js:2742
msgid "Added"
msgstr "Hinzugefügt"
-#: templates/js/translated/stock.js:2794
+#: templates/js/translated/stock.js:2750
msgid "Removed"
msgstr "Entfernt"
-#: templates/js/translated/stock.js:2835
+#: templates/js/translated/stock.js:2791
msgid "Edit tracking entry"
msgstr "Tracking-Eintrag bearbeiten"
-#: templates/js/translated/stock.js:2836
+#: templates/js/translated/stock.js:2792
msgid "Delete tracking entry"
msgstr "Tracking-Eintrag löschen"
-#: templates/js/translated/stock.js:2887
+#: templates/js/translated/stock.js:2843
msgid "No installed items"
msgstr "Keine installierten Elemente"
-#: templates/js/translated/stock.js:2938
+#: templates/js/translated/stock.js:2894
msgid "Uninstall Stock Item"
msgstr "Lagerartikel entfernen"
-#: templates/js/translated/stock.js:2974
+#: templates/js/translated/stock.js:2930
msgid "Install another stock item into this item"
msgstr "Einen weiteren Lagerartikel in dieses Teil installiert"
-#: templates/js/translated/stock.js:2975
+#: templates/js/translated/stock.js:2931
msgid "Stock items can only be installed if they meet the following criteria"
msgstr "Lagerartikel können nur installiert werden wenn folgende Kriterien erfüllt werden"
-#: templates/js/translated/stock.js:2977
+#: templates/js/translated/stock.js:2933
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr "Der Lagerartikel ist auf ein Teil verknüpft das in der Stückliste für diesen Lagerartikel ist"
-#: templates/js/translated/stock.js:2978
+#: templates/js/translated/stock.js:2934
msgid "The Stock Item is currently available in stock"
msgstr "Dieser Lagerartikel ist aktuell vorhanden"
-#: templates/js/translated/stock.js:2979
+#: templates/js/translated/stock.js:2935
msgid "The Stock Item is serialized and does not belong to another item"
msgstr "Der Lagerartikel ist serialisiert und gehört nicht zu einem anderen Teil"
-#: templates/js/translated/stock.js:2992
+#: templates/js/translated/stock.js:2948
msgid "Select part to install"
msgstr "Teil zur Installation auswählen"
@@ -9431,60 +9490,68 @@ msgstr "verfügbarer Bestand"
msgid "Purchasable"
msgstr "Käuflich"
-#: templates/js/translated/tables.js:368
+#: templates/js/translated/tables.js:50
+msgid "Export Table Data"
+msgstr "Tabellendaten exportieren"
+
+#: templates/js/translated/tables.js:54
+msgid "Select File Format"
+msgstr "Dateiformat wählen"
+
+#: templates/js/translated/tables.js:433
msgid "Loading data"
msgstr "Lade Daten"
-#: templates/js/translated/tables.js:371
+#: templates/js/translated/tables.js:436
msgid "rows per page"
msgstr "Zeilen pro Seite"
-#: templates/js/translated/tables.js:376
+#: templates/js/translated/tables.js:441
msgid "Showing all rows"
msgstr "Alle Zeilen anzeigen"
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "Showing"
msgstr "zeige"
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "to"
msgstr "bis"
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "of"
msgstr "von"
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "rows"
msgstr "Zeilen"
-#: templates/js/translated/tables.js:382 templates/search_form.html:6
+#: templates/js/translated/tables.js:447 templates/search_form.html:6
#: templates/search_form.html:7
msgid "Search"
msgstr "Suche"
-#: templates/js/translated/tables.js:385
+#: templates/js/translated/tables.js:450
msgid "No matching results"
msgstr "Keine passenden Ergebnisse gefunden"
-#: templates/js/translated/tables.js:388
+#: templates/js/translated/tables.js:453
msgid "Hide/Show pagination"
msgstr "Zeige/Verstecke Pagination"
-#: templates/js/translated/tables.js:391
+#: templates/js/translated/tables.js:456
msgid "Refresh"
msgstr "Neu laden"
-#: templates/js/translated/tables.js:394
+#: templates/js/translated/tables.js:459
msgid "Toggle"
msgstr "umschalten"
-#: templates/js/translated/tables.js:397
+#: templates/js/translated/tables.js:462
msgid "Columns"
msgstr "Spalten"
-#: templates/js/translated/tables.js:400
+#: templates/js/translated/tables.js:465
msgid "All"
msgstr "Alle"
@@ -9588,63 +9655,59 @@ msgstr "E-Mail-Einstellungen"
msgid "Email settings not configured"
msgstr "E-Mail-Einstellungen nicht konfiguriert"
-#: templates/stock_table.html:14
-msgid "Export Stock Information"
-msgstr "Aktuellen Bestand exportieren"
-
-#: templates/stock_table.html:20
+#: templates/stock_table.html:17
msgid "Barcode Actions"
msgstr "Barcode Aktionen"
-#: templates/stock_table.html:36
+#: templates/stock_table.html:33
msgid "Print test reports"
msgstr "Test-Berichte drucken"
-#: templates/stock_table.html:43
+#: templates/stock_table.html:40
msgid "Stock Options"
msgstr "Bestands-Einstellungen "
-#: templates/stock_table.html:48
+#: templates/stock_table.html:45
msgid "Add to selected stock items"
msgstr "Zu ausgewählten Lagerartikeln hinzufügen"
-#: templates/stock_table.html:49
+#: templates/stock_table.html:46
msgid "Remove from selected stock items"
msgstr "Von ausgewählten Lagerartikeln entfernen"
-#: templates/stock_table.html:50
+#: templates/stock_table.html:47
msgid "Stocktake selected stock items"
msgstr "Inventur für gewählte Lagerartikel"
-#: templates/stock_table.html:51
+#: templates/stock_table.html:48
msgid "Move selected stock items"
msgstr "Ausgewählte Lagerartikel verschieben"
-#: templates/stock_table.html:52
+#: templates/stock_table.html:49
msgid "Merge selected stock items"
msgstr "Ausgewählte Artikel zusammenführen"
-#: templates/stock_table.html:52
+#: templates/stock_table.html:49
msgid "Merge stock"
msgstr "Bestand zusammenführen"
-#: templates/stock_table.html:53
+#: templates/stock_table.html:50
msgid "Order selected items"
msgstr "Ausgewählte Positionen bestellen"
-#: templates/stock_table.html:55
+#: templates/stock_table.html:52
msgid "Change status"
msgstr "Status ändern"
-#: templates/stock_table.html:55
+#: templates/stock_table.html:52
msgid "Change stock status"
msgstr "Status ändern"
-#: templates/stock_table.html:58
+#: templates/stock_table.html:55
msgid "Delete selected items"
msgstr "Ausgewählte Positionen löschen"
-#: templates/stock_table.html:58
+#: templates/stock_table.html:55
msgid "Delete stock"
msgstr "Bestand löschen"
diff --git a/InvenTree/locale/el/LC_MESSAGES/django.po b/InvenTree/locale/el/LC_MESSAGES/django.po
index 5f17724403..56ce7113b1 100644
--- a/InvenTree/locale/el/LC_MESSAGES/django.po
+++ b/InvenTree/locale/el/LC_MESSAGES/django.po
@@ -1,10 +1,10 @@
-#: templates/js/translated/order.js:2090
+#: templates/js/translated/order.js:2178
msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-03-01 13:34+0000\n"
-"PO-Revision-Date: 2022-03-01 14:09\n"
+"POT-Creation-Date: 2022-03-07 04:31+0000\n"
+"PO-Revision-Date: 2022-03-07 04:47\n"
"Last-Translator: \n"
"Language-Team: Greek\n"
"Language: el_GR\n"
@@ -86,7 +86,7 @@ msgid "Duplicate serial: {sn}"
msgstr ""
#: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435
-#: stock/views.py:1101
+#: stock/views.py:983
msgid "Invalid quantity provided"
msgstr ""
@@ -114,100 +114,100 @@ msgstr ""
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:176
+#: InvenTree/models.py:185
msgid "Missing file"
msgstr ""
-#: InvenTree/models.py:177
+#: InvenTree/models.py:186
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:188 stock/models.py:2071
+#: InvenTree/models.py:197 stock/models.py:2123
#: templates/js/translated/attachment.js:119
msgid "Attachment"
msgstr ""
-#: InvenTree/models.py:189
+#: InvenTree/models.py:198
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:195 company/models.py:131 company/models.py:348
+#: InvenTree/models.py:204 company/models.py:131 company/models.py:348
#: company/models.py:564 order/models.py:127 part/models.py:860
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1346
+#: templates/js/translated/company.js:829 templates/js/translated/part.js:1347
msgid "Link"
msgstr ""
-#: InvenTree/models.py:196 build/models.py:330 part/models.py:861
-#: stock/models.py:566
+#: InvenTree/models.py:205 build/models.py:332 part/models.py:861
+#: stock/models.py:618
msgid "Link to external URL"
msgstr ""
-#: InvenTree/models.py:199 templates/js/translated/attachment.js:163
+#: InvenTree/models.py:208 templates/js/translated/attachment.js:163
msgid "Comment"
msgstr ""
-#: InvenTree/models.py:199
+#: InvenTree/models.py:208
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1277
+#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1277
#: common/models.py:1278 common/models.py:1506 common/models.py:1507
-#: part/models.py:2303 part/models.py:2323
+#: part/models.py:2317 part/models.py:2337
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2817
+#: templates/js/translated/stock.js:2773
msgid "User"
msgstr ""
-#: InvenTree/models.py:209
+#: InvenTree/models.py:218
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:232
+#: InvenTree/models.py:241
msgid "Filename must not be empty"
msgstr ""
-#: InvenTree/models.py:255
+#: InvenTree/models.py:264
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:265
+#: InvenTree/models.py:274
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:268
+#: InvenTree/models.py:277
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:275
+#: InvenTree/models.py:284
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:282
+#: InvenTree/models.py:291
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:317
+#: InvenTree/models.py:326
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1492
+#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1492
#: company/models.py:415 label/models.py:112 part/models.py:804
-#: part/models.py:2487 plugin/models.py:40 report/models.py:181
+#: part/models.py:2501 plugin/models.py:40 report/models.py:181
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:48
#: templates/InvenTree/settings/plugin.html:125
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:319
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:567
-#: templates/js/translated/part.js:706 templates/js/translated/part.js:1653
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/company.js:641 templates/js/translated/part.js:568
+#: templates/js/translated/part.js:707 templates/js/translated/part.js:1654
+#: templates/js/translated/stock.js:2573
msgid "Name"
msgstr ""
-#: InvenTree/models.py:340 build/models.py:207
+#: InvenTree/models.py:349 build/models.py:209
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
@@ -219,28 +219,28 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:92
#: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:765
-#: templates/js/translated/build.js:1920 templates/js/translated/company.js:345
+#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763
+#: templates/js/translated/build.js:1973 templates/js/translated/company.js:345
#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:911
-#: templates/js/translated/order.js:1105 templates/js/translated/order.js:1366
-#: templates/js/translated/part.js:626 templates/js/translated/part.js:1021
-#: templates/js/translated/part.js:1106 templates/js/translated/part.js:1276
-#: templates/js/translated/part.js:1672 templates/js/translated/part.js:1741
-#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2446
-#: templates/js/translated/stock.js:2629 templates/js/translated/stock.js:2667
+#: templates/js/translated/company.js:840 templates/js/translated/order.js:971
+#: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454
+#: templates/js/translated/part.js:627 templates/js/translated/part.js:1022
+#: templates/js/translated/part.js:1107 templates/js/translated/part.js:1277
+#: templates/js/translated/part.js:1673 templates/js/translated/part.js:1742
+#: templates/js/translated/stock.js:1656 templates/js/translated/stock.js:2402
+#: templates/js/translated/stock.js:2585 templates/js/translated/stock.js:2623
msgid "Description"
msgstr ""
-#: InvenTree/models.py:341
+#: InvenTree/models.py:350
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:349
+#: InvenTree/models.py:358
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:65 part/models.py:2805
+#: InvenTree/serializers.py:65 part/models.py:2820
msgid "Must be a valid number"
msgstr ""
@@ -294,87 +294,87 @@ msgstr ""
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:665
msgid "German"
msgstr ""
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:666
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:667
msgid "English"
msgstr ""
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:668
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:669
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:670
msgid "French"
msgstr ""
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:671
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:672
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:673
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:674
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:675
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:676
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:677
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:678
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:679
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:680
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:681
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:682
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:683
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:684
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:685
msgid "Chinese"
msgstr ""
@@ -421,7 +421,7 @@ msgid "Returned"
msgstr ""
#: InvenTree/status_codes.py:143 order/models.py:997
-#: templates/js/translated/order.js:2097 templates/js/translated/order.js:2394
+#: templates/js/translated/order.js:2185 templates/js/translated/order.js:2482
msgid "Shipped"
msgstr ""
@@ -501,7 +501,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2204
+#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2160
msgid "Merged stock items"
msgstr ""
@@ -593,43 +593,43 @@ msgstr ""
msgid "System Information"
msgstr ""
-#: barcodes/api.py:54 barcodes/api.py:152
+#: barcodes/api.py:55 barcodes/api.py:156
msgid "Must provide barcode_data parameter"
msgstr ""
-#: barcodes/api.py:128
+#: barcodes/api.py:132
msgid "No match found for barcode data"
msgstr ""
-#: barcodes/api.py:130
+#: barcodes/api.py:134
msgid "Match found for barcode data"
msgstr ""
-#: barcodes/api.py:155
+#: barcodes/api.py:159
msgid "Must provide stockitem parameter"
msgstr ""
-#: barcodes/api.py:162
+#: barcodes/api.py:166
msgid "No matching stock item found"
msgstr ""
-#: barcodes/api.py:193
+#: barcodes/api.py:197
msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:197
+#: barcodes/api.py:201
msgid "Barcode already matches Stock Location"
msgstr ""
-#: barcodes/api.py:201
+#: barcodes/api.py:205
msgid "Barcode already matches Part"
msgstr ""
-#: barcodes/api.py:207 barcodes/api.py:219
+#: barcodes/api.py:211 barcodes/api.py:223
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: barcodes/api.py:225
+#: barcodes/api.py:229
msgid "Barcode associated with Stock Item"
msgstr ""
@@ -641,18 +641,18 @@ msgstr ""
msgid "Confirm build cancellation"
msgstr ""
-#: build/models.py:133
+#: build/models.py:135
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:139 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:676 templates/js/translated/stock.js:2422
+#: templates/js/translated/build.js:677 templates/js/translated/stock.js:2378
msgid "Build Order"
msgstr ""
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:140 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:92
#: order/templates/order/so_sidebar.html:13
@@ -662,41 +662,41 @@ msgstr ""
msgid "Build Orders"
msgstr ""
-#: build/models.py:198
+#: build/models.py:200
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:213 order/models.py:563
-#: order/models.py:843 part/models.py:2716
+#: build/models.py:201 order/models.py:213 order/models.py:563
+#: order/models.py:843 part/models.py:2731
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:772 templates/js/translated/build.js:1401
-#: templates/js/translated/order.js:1136 templates/js/translated/order.js:2261
+#: templates/js/translated/bom.js:770 templates/js/translated/build.js:1402
+#: templates/js/translated/order.js:1223 templates/js/translated/order.js:2349
msgid "Reference"
msgstr ""
-#: build/models.py:210
+#: build/models.py:212
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:219 build/templates/build/build_base.html:169
+#: build/models.py:221 build/templates/build/build_base.html:169
#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:222
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:225 build/templates/build/build_base.html:77
+#: build/models.py:227 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
#: order/models.py:912 order/models.py:986
#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359
-#: part/models.py:2249 part/models.py:2265 part/models.py:2284
-#: part/models.py:2301 part/models.py:2403 part/models.py:2525
-#: part/models.py:2615 part/models.py:2691 part/models.py:2998
-#: part/serializers.py:666 part/templates/part/part_app_base.html:8
+#: part/models.py:2263 part/models.py:2279 part/models.py:2298
+#: part/models.py:2315 part/models.py:2417 part/models.py:2539
+#: part/models.py:2629 part/models.py:2706 part/models.py:3013
+#: part/serializers.py:669 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: part/templates/part/upload_bom.html:52
@@ -707,231 +707,231 @@ msgstr ""
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551
-#: templates/js/translated/bom.js:730 templates/js/translated/build.js:902
-#: templates/js/translated/build.js:1270 templates/js/translated/build.js:1655
-#: templates/js/translated/build.js:1925 templates/js/translated/company.js:492
+#: templates/js/translated/bom.js:728 templates/js/translated/build.js:903
+#: templates/js/translated/build.js:1271 templates/js/translated/build.js:1666
+#: templates/js/translated/build.js:1978 templates/js/translated/company.js:492
#: templates/js/translated/company.js:749 templates/js/translated/order.js:84
-#: templates/js/translated/order.js:651 templates/js/translated/order.js:1090
-#: templates/js/translated/order.js:1693 templates/js/translated/order.js:2050
-#: templates/js/translated/order.js:2245 templates/js/translated/part.js:1006
-#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1254
-#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1657
-#: templates/js/translated/stock.js:2892 templates/js/translated/stock.js:2991
+#: templates/js/translated/order.js:711 templates/js/translated/order.js:1177
+#: templates/js/translated/order.js:1781 templates/js/translated/order.js:2138
+#: templates/js/translated/order.js:2333 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1088 templates/js/translated/part.js:1255
+#: templates/js/translated/stock.js:518 templates/js/translated/stock.js:683
+#: templates/js/translated/stock.js:890 templates/js/translated/stock.js:1613
+#: templates/js/translated/stock.js:2848 templates/js/translated/stock.js:2947
msgid "Part"
msgstr ""
-#: build/models.py:233
+#: build/models.py:235
msgid "Select part to build"
msgstr ""
-#: build/models.py:238
+#: build/models.py:240
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:242
+#: build/models.py:244
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 templates/js/translated/build.js:1643
-#: templates/js/translated/order.js:1681
+#: build/models.py:249 build/serializers.py:729
+#: templates/js/translated/build.js:1654 templates/js/translated/order.js:1769
msgid "Source Location"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:256
+#: build/models.py:258
msgid "Destination Location"
msgstr ""
-#: build/models.py:260
+#: build/models.py:262
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:264
+#: build/models.py:266
msgid "Build Quantity"
msgstr ""
-#: build/models.py:267
+#: build/models.py:269
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:271
+#: build/models.py:273
msgid "Completed items"
msgstr ""
-#: build/models.py:273
+#: build/models.py:275
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:277 part/templates/part/part_base.html:234
+#: build/models.py:279 part/templates/part/part_base.html:234
msgid "Build Status"
msgstr ""
-#: build/models.py:281
+#: build/models.py:283
msgid "Build status code"
msgstr ""
-#: build/models.py:285 build/serializers.py:218 order/serializers.py:272
-#: stock/models.py:570 templates/js/translated/order.js:513
+#: build/models.py:287 build/serializers.py:218 order/serializers.py:272
+#: stock/models.py:622 templates/js/translated/order.js:573
msgid "Batch Code"
msgstr ""
-#: build/models.py:289 build/serializers.py:219
+#: build/models.py:291 build/serializers.py:219
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:129 part/models.py:999
-#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1379
+#: build/models.py:294 order/models.py:129 part/models.py:999
+#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1467
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:585
+#: build/models.py:298 order/models.py:585
msgid "Target completion date"
msgstr ""
-#: build/models.py:297
+#: build/models.py:299
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:255
-#: templates/js/translated/build.js:2002
+#: build/models.py:302 order/models.py:255
+#: templates/js/translated/build.js:2055
msgid "Completion Date"
msgstr ""
-#: build/models.py:306
+#: build/models.py:308
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:1970
+#: build/models.py:316 templates/js/translated/build.js:2023
msgid "Issued by"
msgstr ""
-#: build/models.py:315
+#: build/models.py:317
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:323 build/templates/build/build_base.html:190
+#: build/models.py:325 build/templates/build/build_base.html:190
#: build/templates/build/detail.html:116 order/models.py:143
#: order/templates/order/order_base.html:170
#: order/templates/order/sales_order_base.html:182 part/models.py:1003
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1982 templates/js/translated/order.js:945
+#: templates/js/translated/build.js:2035 templates/js/translated/order.js:1005
msgid "Responsible"
msgstr ""
-#: build/models.py:324
+#: build/models.py:326
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:329 build/templates/build/detail.html:102
+#: build/models.py:331 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:564
+#: part/templates/part/part_base.html:354 stock/models.py:616
#: stock/templates/stock/item_base.html:352
msgid "External Link"
msgstr ""
-#: build/models.py:334 build/serializers.py:381
+#: build/models.py:336 build/serializers.py:381
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
#: order/models.py:147 order/models.py:845 order/models.py:1107
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/models.py:988
-#: part/templates/part/detail.html:146 part/templates/part/part_sidebar.html:57
+#: part/templates/part/detail.html:141 part/templates/part/part_sidebar.html:57
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:137 stock/forms.py:171 stock/models.py:636
-#: stock/models.py:1971 stock/models.py:2077 stock/serializers.py:332
+#: stock/forms.py:137 stock/forms.py:171 stock/models.py:688
+#: stock/models.py:2023 stock/models.py:2129 stock/serializers.py:332
#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:936
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1257
-#: templates/js/translated/order.js:1562 templates/js/translated/order.js:2419
-#: templates/js/translated/stock.js:1344 templates/js/translated/stock.js:1935
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934
+#: templates/js/translated/company.js:845 templates/js/translated/order.js:1344
+#: templates/js/translated/order.js:1650 templates/js/translated/order.js:2507
+#: templates/js/translated/stock.js:1300 templates/js/translated/stock.js:1891
msgid "Notes"
msgstr ""
-#: build/models.py:335
+#: build/models.py:337
msgid "Extra build notes"
msgstr ""
-#: build/models.py:748
+#: build/models.py:750
msgid "No build output specified"
msgstr ""
-#: build/models.py:751
+#: build/models.py:753
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:754
+#: build/models.py:756
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1060
+#: build/models.py:1162
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1069
+#: build/models.py:1171
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1079
+#: build/models.py:1181
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1085 order/models.py:1225
+#: build/models.py:1187 order/models.py:1225
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1091
+#: build/models.py:1193
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1148
+#: build/models.py:1250
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1217 stock/templates/stock/item_base.html:324
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898
+#: build/models.py:1319 stock/templates/stock/item_base.html:324
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1951
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1218
+#: build/models.py:1320
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1234 build/serializers.py:576 order/serializers.py:783
+#: build/models.py:1336 build/serializers.py:576 order/serializers.py:783
#: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635
#: stock/serializers.py:753 stock/templates/stock/item_base.html:9
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:346
-#: templates/js/translated/build.js:687 templates/js/translated/build.js:692
-#: templates/js/translated/build.js:1657 templates/js/translated/build.js:2050
-#: templates/js/translated/order.js:85 templates/js/translated/order.js:1694
-#: templates/js/translated/order.js:1949 templates/js/translated/order.js:1954
-#: templates/js/translated/order.js:2057 templates/js/translated/order.js:2147
-#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728
-#: templates/js/translated/stock.js:2753
+#: templates/js/translated/build.js:688 templates/js/translated/build.js:693
+#: templates/js/translated/build.js:1668 templates/js/translated/build.js:2103
+#: templates/js/translated/order.js:85 templates/js/translated/order.js:1782
+#: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:2235
+#: templates/js/translated/stock.js:519 templates/js/translated/stock.js:684
+#: templates/js/translated/stock.js:2709
msgid "Stock Item"
msgstr ""
-#: build/models.py:1235
+#: build/models.py:1337
msgid "Source stock item"
msgstr ""
-#: build/models.py:1247 build/serializers.py:188
+#: build/models.py:1349 build/serializers.py:188
#: build/templates/build/build_base.html:82
#: build/templates/build/detail.html:35 common/models.py:1317
#: company/forms.py:42 company/templates/company/supplier_part.html:251
#: order/models.py:836 order/models.py:1265 order/serializers.py:903
#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144
-#: part/forms.py:160 part/forms.py:176 part/models.py:2707
-#: part/templates/part/detail.html:1008 part/templates/part/detail.html:1094
+#: part/forms.py:160 part/forms.py:176 part/models.py:2722
+#: part/templates/part/detail.html:994 part/templates/part/detail.html:1080
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_build_order_base.html:114
@@ -943,32 +943,32 @@ msgstr ""
#: stock/templates/stock/item_base.html:176
#: stock/templates/stock/item_base.html:241
#: stock/templates/stock/item_base.html:249
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:780
-#: templates/js/translated/build.js:375 templates/js/translated/build.js:523
-#: templates/js/translated/build.js:714 templates/js/translated/build.js:911
-#: templates/js/translated/build.js:921 templates/js/translated/build.js:1297
-#: templates/js/translated/build.js:1658
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778
+#: templates/js/translated/build.js:376 templates/js/translated/build.js:524
+#: templates/js/translated/build.js:715 templates/js/translated/build.js:912
+#: templates/js/translated/build.js:922 templates/js/translated/build.js:1298
+#: templates/js/translated/build.js:1669
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:101 templates/js/translated/order.js:1142
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:1976
-#: templates/js/translated/order.js:2064 templates/js/translated/order.js:2153
-#: templates/js/translated/order.js:2267 templates/js/translated/part.js:906
-#: templates/js/translated/part.js:1884 templates/js/translated/part.js:2007
-#: templates/js/translated/part.js:2085 templates/js/translated/stock.js:391
-#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758
-#: templates/js/translated/stock.js:2802 templates/js/translated/stock.js:2904
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:1229
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:2064
+#: templates/js/translated/order.js:2152 templates/js/translated/order.js:2241
+#: templates/js/translated/order.js:2355 templates/js/translated/part.js:907
+#: templates/js/translated/part.js:1885 templates/js/translated/part.js:2008
+#: templates/js/translated/part.js:2086 templates/js/translated/stock.js:390
+#: templates/js/translated/stock.js:544 templates/js/translated/stock.js:714
+#: templates/js/translated/stock.js:2758 templates/js/translated/stock.js:2860
msgid "Quantity"
msgstr ""
-#: build/models.py:1248
+#: build/models.py:1350
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1256
+#: build/models.py:1358
msgid "Install into"
msgstr ""
-#: build/models.py:1257
+#: build/models.py:1359
msgid "Destination stock item"
msgstr ""
@@ -997,8 +997,8 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:201 build/serializers.py:596 order/models.py:280
-#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:826
-#: stock/models.py:404 stock/models.py:1180 stock/serializers.py:305
+#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:836
+#: stock/models.py:456 stock/models.py:1232 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1012,8 +1012,8 @@ msgstr ""
#: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907
#: stock/forms.py:78 stock/serializers.py:314
-#: templates/js/translated/order.js:524 templates/js/translated/stock.js:238
-#: templates/js/translated/stock.js:392
+#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237
+#: templates/js/translated/stock.js:391
msgid "Serial Numbers"
msgstr ""
@@ -1029,7 +1029,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:275 stock/api.py:549
+#: build/serializers.py:275 stock/api.py:551
msgid "The following serial numbers already exist"
msgstr ""
@@ -1041,13 +1041,13 @@ msgstr ""
#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788
#: stock/serializers.py:1029 stock/templates/stock/item_base.html:292
#: templates/js/translated/barcode.js:384
-#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:699
-#: templates/js/translated/build.js:1309 templates/js/translated/order.js:551
-#: templates/js/translated/order.js:1961 templates/js/translated/order.js:2072
-#: templates/js/translated/order.js:2080 templates/js/translated/order.js:2161
-#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564
-#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936
-#: templates/js/translated/stock.js:1807 templates/js/translated/stock.js:2694
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700
+#: templates/js/translated/build.js:1310 templates/js/translated/order.js:611
+#: templates/js/translated/order.js:2049 templates/js/translated/order.js:2160
+#: templates/js/translated/order.js:2168 templates/js/translated/order.js:2249
+#: templates/js/translated/part.js:179 templates/js/translated/stock.js:520
+#: templates/js/translated/stock.js:685 templates/js/translated/stock.js:892
+#: templates/js/translated/stock.js:1763 templates/js/translated/stock.js:2650
msgid "Location"
msgstr ""
@@ -1058,10 +1058,10 @@ msgstr ""
#: build/serializers.py:377 build/templates/build/build_base.html:142
#: build/templates/build/detail.html:63 order/models.py:579
#: order/serializers.py:290 stock/templates/stock/item_base.html:182
-#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1954
-#: templates/js/translated/order.js:656 templates/js/translated/order.js:915
-#: templates/js/translated/order.js:1371 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2771 templates/js/translated/stock.js:2920
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2007
+#: templates/js/translated/order.js:716 templates/js/translated/order.js:975
+#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2727 templates/js/translated/stock.js:2876
msgid "Status"
msgstr ""
@@ -1073,7 +1073,7 @@ msgstr ""
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:445 templates/js/translated/build.js:150
+#: build/serializers.py:445 templates/js/translated/build.js:151
msgid "Required stock has not been fully allocated"
msgstr ""
@@ -1085,7 +1085,7 @@ msgstr ""
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:461 templates/js/translated/build.js:154
+#: build/serializers.py:461 templates/js/translated/build.js:155
msgid "Required build quantity has not been completed"
msgstr ""
@@ -1097,8 +1097,8 @@ msgstr ""
msgid "No build outputs have been created for this build order"
msgstr ""
-#: build/serializers.py:501 build/serializers.py:550 part/models.py:2831
-#: part/models.py:2990
+#: build/serializers.py:501 build/serializers.py:550 part/models.py:2846
+#: part/models.py:3005
msgid "BOM Item"
msgstr ""
@@ -1135,6 +1135,26 @@ msgstr ""
msgid "Allocation items must be provided"
msgstr ""
+#: build/serializers.py:730
+msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
+msgstr ""
+
+#: build/serializers.py:735
+msgid "Interchangeable Stock"
+msgstr ""
+
+#: build/serializers.py:736
+msgid "Stock items in multiple locations can be used interchangeably"
+msgstr ""
+
+#: build/serializers.py:741
+msgid "Substitute Stock"
+msgstr ""
+
+#: build/serializers.py:742
+msgid "Allow allocation of substitute parts"
+msgstr ""
+
#: build/tasks.py:98
msgid "Stock required for build order"
msgstr ""
@@ -1206,9 +1226,9 @@ msgstr ""
#: order/templates/order/order_base.html:156
#: order/templates/order/sales_order_base.html:163
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1994 templates/js/translated/order.js:932
-#: templates/js/translated/order.js:1204 templates/js/translated/order.js:1387
-#: templates/js/translated/order.js:2330 templates/js/translated/part.js:910
+#: templates/js/translated/build.js:2047 templates/js/translated/order.js:992
+#: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475
+#: templates/js/translated/order.js:2418 templates/js/translated/part.js:911
msgid "Target Date"
msgstr ""
@@ -1230,7 +1250,7 @@ msgstr ""
#: build/templates/build/build_base.html:163
#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
#: order/templates/order/sales_order_base.html:170
-#: templates/js/translated/build.js:1940
+#: templates/js/translated/build.js:1993
#: templates/js/translated/table_filters.js:365
msgid "Completed"
msgstr ""
@@ -1242,7 +1262,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:286
-#: templates/js/translated/order.js:1326 templates/js/translated/stock.js:2436
+#: templates/js/translated/order.js:1414 templates/js/translated/stock.js:2392
msgid "Sales Order"
msgstr ""
@@ -1277,7 +1297,7 @@ msgid "Stock can be taken from any available location."
msgstr ""
#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133
-#: templates/js/translated/order.js:657 templates/js/translated/order.js:1246
+#: templates/js/translated/order.js:717 templates/js/translated/order.js:1333
msgid "Destination"
msgstr ""
@@ -1285,13 +1305,13 @@ msgstr ""
msgid "Destination location not specified"
msgstr ""
-#: build/templates/build/detail.html:74 templates/js/translated/build.js:929
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:930
msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:310
-#: templates/js/translated/stock.js:1796 templates/js/translated/stock.js:2927
+#: templates/js/translated/stock.js:1752 templates/js/translated/stock.js:2883
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:238
msgid "Batch"
@@ -1300,7 +1320,7 @@ msgstr ""
#: build/templates/build/detail.html:127
#: order/templates/order/order_base.html:143
#: order/templates/order/sales_order_base.html:157
-#: templates/js/translated/build.js:1962
+#: templates/js/translated/build.js:2015
msgid "Created"
msgstr ""
@@ -1320,7 +1340,7 @@ msgstr ""
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:177 templates/js/translated/build.js:1484
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1485
msgid "Unallocate stock"
msgstr ""
@@ -1329,111 +1349,119 @@ msgid "Unallocate Stock"
msgstr ""
#: build/templates/build/detail.html:180
-msgid "Allocate stock to build"
+msgid "Automatically allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
+#: build/templates/build/detail.html:181
+msgid "Auto Allocate"
+msgstr ""
+
+#: build/templates/build/detail.html:183
+msgid "Manually allocate stock to build"
+msgstr ""
+
+#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8
msgid "Allocate Stock"
msgstr ""
-#: build/templates/build/detail.html:184
+#: build/templates/build/detail.html:187
msgid "Order required parts"
msgstr ""
-#: build/templates/build/detail.html:185
+#: build/templates/build/detail.html:188
#: company/templates/company/detail.html:38
#: company/templates/company/detail.html:85 order/views.py:463
-#: part/templates/part/category.html:177
+#: part/templates/part/category.html:174
msgid "Order Parts"
msgstr ""
-#: build/templates/build/detail.html:197
+#: build/templates/build/detail.html:200
msgid "Untracked stock has been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:201
+#: build/templates/build/detail.html:204
msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:208
+#: build/templates/build/detail.html:211
msgid "Allocate selected items"
msgstr ""
-#: build/templates/build/detail.html:218
+#: build/templates/build/detail.html:221
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:230
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:231
+#: build/templates/build/detail.html:234
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:232
+#: build/templates/build/detail.html:235
msgid "New Build Output"
msgstr ""
-#: build/templates/build/detail.html:246
+#: build/templates/build/detail.html:249
msgid "Output Actions"
msgstr ""
-#: build/templates/build/detail.html:250
+#: build/templates/build/detail.html:253
msgid "Complete selected build outputs"
msgstr ""
-#: build/templates/build/detail.html:251
+#: build/templates/build/detail.html:254
msgid "Complete outputs"
msgstr ""
-#: build/templates/build/detail.html:253
+#: build/templates/build/detail.html:256
msgid "Delete selected build outputs"
msgstr ""
-#: build/templates/build/detail.html:254
+#: build/templates/build/detail.html:257
msgid "Delete outputs"
msgstr ""
-#: build/templates/build/detail.html:270
+#: build/templates/build/detail.html:273
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19
+#: build/templates/build/detail.html:285 build/templates/build/sidebar.html:19
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:107
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:222
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217
#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:105
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:298
+#: build/templates/build/detail.html:301
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:302 build/templates/build/detail.html:478
-#: company/templates/company/detail.html:188
-#: company/templates/company/detail.html:215
+#: build/templates/build/detail.html:305 build/templates/build/detail.html:481
+#: company/templates/company/detail.html:190
+#: company/templates/company/detail.html:217
#: order/templates/order/purchase_order_detail.html:80
#: order/templates/order/purchase_order_detail.html:108
#: order/templates/order/sales_order_detail.html:127
#: order/templates/order/sales_order_detail.html:186
-#: part/templates/part/detail.html:150 stock/templates/stock/item.html:125
+#: part/templates/part/detail.html:145 stock/templates/stock/item.html:125
#: stock/templates/stock/item.html:223
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:519
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:520
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:329
+#: build/templates/build/index.html:18 part/templates/part/detail.html:322
msgid "New Build Order"
msgstr ""
@@ -1658,7 +1686,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:732 part/models.py:2527 report/models.py:187
+#: common/models.py:732 part/models.py:2541 report/models.py:187
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:417
msgid "Template"
@@ -1668,7 +1696,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:739 part/models.py:951 templates/js/translated/bom.js:1300
+#: common/models.py:739 part/models.py:951 templates/js/translated/bom.js:1305
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:429
msgid "Assembly"
@@ -2243,7 +2271,7 @@ msgstr ""
#: common/models.py:1325 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:937 templates/js/translated/part.js:1889
+#: templates/js/translated/part.js:938 templates/js/translated/part.js:1890
msgid "Price"
msgstr ""
@@ -2337,14 +2365,14 @@ msgstr ""
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
-#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:210
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208
#: templates/patterns/wizard/upload.html:35
msgid "Upload File"
msgstr ""
#: common/views.py:94 order/views.py:244
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:211
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:209
#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
@@ -2472,7 +2500,7 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:508
+#: company/models.py:320 company/models.py:535 stock/models.py:560
#: stock/templates/stock/item_base.html:137 templates/js/translated/bom.js:541
msgid "Base Part"
msgstr ""
@@ -2499,8 +2527,8 @@ msgstr ""
#: company/models.py:342 company/templates/company/manufacturer_part.html:96
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1124
-#: templates/js/translated/part.js:245 templates/js/translated/part.js:895
+#: templates/js/translated/company.js:818 templates/js/translated/order.js:1211
+#: templates/js/translated/part.js:245 templates/js/translated/part.js:896
msgid "MPN"
msgstr ""
@@ -2529,8 +2557,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2064 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1331
+#: stock/models.py:2116 templates/js/translated/company.js:647
+#: templates/js/translated/part.js:716 templates/js/translated/stock.js:1287
msgid "Value"
msgstr ""
@@ -2538,10 +2566,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:945 part/models.py:2495
+#: company/models.py:429 part/models.py:945 part/models.py:2509
#: part/templates/part/part_base.html:288
#: templates/InvenTree/settings/settings.html:324
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:721
+#: templates/js/translated/company.js:653 templates/js/translated/part.js:722
msgid "Units"
msgstr ""
@@ -2559,8 +2587,8 @@ msgstr ""
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237
#: part/bom.py:265 stock/templates/stock/item_base.html:376
#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:898
-#: templates/js/translated/part.js:215 templates/js/translated/part.js:863
+#: templates/js/translated/company.js:774 templates/js/translated/order.js:958
+#: templates/js/translated/part.js:215 templates/js/translated/part.js:864
#: templates/js/translated/table_filters.js:388
msgid "Supplier"
msgstr ""
@@ -2570,8 +2598,8 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1111
-#: templates/js/translated/part.js:226 templates/js/translated/part.js:881
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198
+#: templates/js/translated/part.js:226 templates/js/translated/part.js:882
msgid "SKU"
msgstr ""
@@ -2592,7 +2620,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:119
-#: part/models.py:2719 part/templates/part/upload_bom.html:59
+#: part/models.py:2734 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409
msgid "Note"
@@ -2607,8 +2635,8 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:532 stock/templates/stock/item_base.html:317
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1931
+#: stock/models.py:584 stock/templates/stock/item_base.html:317
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1887
msgid "Packaging"
msgstr ""
@@ -2676,11 +2704,11 @@ msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:83 order/models.py:574
-#: order/templates/order/sales_order_base.html:115 stock/models.py:551
-#: stock/models.py:552 stock/serializers.py:683
+#: order/templates/order/sales_order_base.html:115 stock/models.py:603
+#: stock/models.py:604 stock/serializers.py:683
#: stock/templates/stock/item_base.html:269
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1348
-#: templates/js/translated/stock.js:2735
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1436
+#: templates/js/translated/stock.js:2691
#: templates/js/translated/table_filters.js:392
msgid "Customer"
msgstr ""
@@ -2711,7 +2739,7 @@ msgstr ""
#: company/templates/company/detail.html:20
#: company/templates/company/manufacturer_part.html:118
-#: part/templates/part/detail.html:367
+#: part/templates/part/detail.html:360
msgid "New Supplier Part"
msgstr ""
@@ -2719,14 +2747,14 @@ msgstr ""
#: company/templates/company/detail.html:79
#: company/templates/company/manufacturer_part.html:127
#: company/templates/company/manufacturer_part.html:156
-#: part/templates/part/category.html:171 part/templates/part/detail.html:376
-#: part/templates/part/detail.html:405
+#: part/templates/part/category.html:168 part/templates/part/detail.html:369
+#: part/templates/part/detail.html:398
msgid "Options"
msgstr ""
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177
+#: part/templates/part/category.html:174
msgid "Order parts"
msgstr ""
@@ -2748,7 +2776,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:395
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:388
msgid "New Manufacturer Part"
msgstr ""
@@ -2762,7 +2790,7 @@ msgstr ""
#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:40
+#: part/templates/part/detail.html:80 part/templates/part/part_sidebar.html:40
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
@@ -2784,7 +2812,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:44
+#: part/templates/part/detail.html:103 part/templates/part/part_sidebar.html:44
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
@@ -2802,23 +2830,23 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/detail.html:168
-#: templates/js/translated/build.js:1281
+#: templates/js/translated/build.js:1282
msgid "Assigned Stock"
msgstr ""
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:186
msgid "Company Notes"
msgstr ""
-#: company/templates/company/detail.html:384
+#: company/templates/company/detail.html:380
#: company/templates/company/manufacturer_part.html:215
-#: part/templates/part/detail.html:449
+#: part/templates/part/detail.html:442
msgid "Delete Supplier Parts?"
msgstr ""
-#: company/templates/company/detail.html:385
+#: company/templates/company/detail.html:381
#: company/templates/company/manufacturer_part.html:216
-#: part/templates/part/detail.html:450
+#: part/templates/part/detail.html:443
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2835,7 +2863,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:34
#: company/templates/company/supplier_part.html:159
-#: part/templates/part/detail.html:88 part/templates/part/part_base.html:76
+#: part/templates/part/detail.html:83 part/templates/part/part_base.html:76
msgid "Order part"
msgstr ""
@@ -2862,14 +2890,14 @@ msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
-#: part/templates/part/detail.html:378
+#: part/templates/part/detail.html:371
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
#: company/templates/company/manufacturer_part.html:158
#: company/templates/company/manufacturer_part.html:254
-#: part/templates/part/detail.html:378 part/templates/part/detail.html:407
+#: part/templates/part/detail.html:371 part/templates/part/detail.html:400
#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31
#: users/models.py:217
msgid "Delete"
@@ -2878,12 +2906,12 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:143
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:17
-#: part/templates/part/detail.html:196 part/templates/part/part_sidebar.html:9
+#: part/templates/part/detail.html:191 part/templates/part/part_sidebar.html:9
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:147
-#: part/templates/part/detail.html:201
+#: part/templates/part/detail.html:196
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:66
msgid "New Parameter"
@@ -2894,7 +2922,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:191
-#: part/templates/part/detail.html:908
+#: part/templates/part/detail.html:894
msgid "Add Parameter"
msgstr ""
@@ -2923,9 +2951,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:516
+#: company/templates/company/supplier_part.html:24 stock/models.py:568
#: stock/templates/stock/item_base.html:381
-#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1888
+#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1844
msgid "Supplier Part"
msgstr ""
@@ -2951,7 +2979,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:166
-#: templates/js/translated/stock.js:368
+#: templates/js/translated/stock.js:367
msgid "New Stock Item"
msgstr ""
@@ -2961,7 +2989,7 @@ msgid "Supplier Part Orders"
msgstr ""
#: company/templates/company/supplier_part.html:160
-#: part/templates/part/detail.html:89
+#: part/templates/part/detail.html:84
msgid "Order Part"
msgstr ""
@@ -2972,7 +3000,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1319
+#: part/templates/part/prices.html:271 part/views.py:1254
msgid "Add Price Break"
msgstr ""
@@ -2980,11 +3008,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1381
+#: company/templates/company/supplier_part.html:224 part/views.py:1316
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1367
+#: company/templates/company/supplier_part.html:238 part/views.py:1302
msgid "Edit Price Break"
msgstr ""
@@ -3002,10 +3030,10 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:150
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/bom.js:553 templates/js/translated/part.js:495
-#: templates/js/translated/part.js:630 templates/js/translated/part.js:1147
-#: templates/js/translated/part.js:1308 templates/js/translated/stock.js:935
-#: templates/js/translated/stock.js:1711 templates/navbar.html:28
+#: templates/js/translated/bom.js:553 templates/js/translated/part.js:496
+#: templates/js/translated/part.js:631 templates/js/translated/part.js:1148
+#: templates/js/translated/part.js:1309 templates/js/translated/stock.js:891
+#: templates/js/translated/stock.js:1667 templates/navbar.html:28
msgid "Stock"
msgstr ""
@@ -3028,7 +3056,7 @@ msgstr ""
#: stock/templates/stock/location.html:150
#: stock/templates/stock/location.html:162
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2641
+#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2597
#: templates/stats.html:105 templates/stats.html:114 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -3058,20 +3086,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:591
+#: company/views.py:129 part/views.py:589
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:623
+#: company/views.py:158 part/views.py:621
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:630
+#: company/views.py:165 part/views.py:628
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:639
+#: company/views.py:174 part/views.py:637
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3190,7 +3218,7 @@ msgid "Company from which the items are being ordered"
msgstr ""
#: order/models.py:231 order/templates/order/order_base.html:118
-#: templates/js/translated/order.js:907
+#: templates/js/translated/order.js:967
msgid "Supplier Reference"
msgstr ""
@@ -3247,7 +3275,7 @@ msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
#: order/models.py:589 order/models.py:1084
-#: templates/js/translated/order.js:1395 templates/js/translated/order.js:1546
+#: templates/js/translated/order.js:1483 templates/js/translated/order.js:1634
msgid "Shipment Date"
msgstr ""
@@ -3292,7 +3320,7 @@ msgid "Supplier part must match supplier"
msgstr ""
#: order/models.py:891 order/models.py:982 order/models.py:1078
-#: templates/js/translated/order.js:1937 templates/js/translated/stock.js:2403
+#: templates/js/translated/order.js:2025 templates/js/translated/stock.js:2359
msgid "Order"
msgstr ""
@@ -3300,8 +3328,8 @@ msgstr ""
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:331
-#: templates/js/translated/order.js:876 templates/js/translated/part.js:838
-#: templates/js/translated/stock.js:1865 templates/js/translated/stock.js:2716
+#: templates/js/translated/order.js:936 templates/js/translated/part.js:839
+#: templates/js/translated/stock.js:1821 templates/js/translated/stock.js:2672
msgid "Purchase Order"
msgstr ""
@@ -3310,8 +3338,8 @@ msgid "Supplier part"
msgstr ""
#: order/models.py:920 order/templates/order/order_base.html:163
-#: templates/js/translated/order.js:654 templates/js/translated/order.js:1226
-#: templates/js/translated/part.js:932 templates/js/translated/part.js:959
+#: templates/js/translated/order.js:714 templates/js/translated/order.js:1313
+#: templates/js/translated/part.js:933 templates/js/translated/part.js:960
#: templates/js/translated/table_filters.js:312
msgid "Received"
msgstr ""
@@ -3320,9 +3348,9 @@ msgstr ""
msgid "Number of items received"
msgstr ""
-#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:645
+#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:697
#: stock/serializers.py:170 stock/templates/stock/item_base.html:338
-#: templates/js/translated/stock.js:1919
+#: templates/js/translated/stock.js:1875
msgid "Purchase Price"
msgstr ""
@@ -3456,11 +3484,11 @@ msgstr ""
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:273 templates/js/translated/order.js:514
+#: order/serializers.py:273 templates/js/translated/order.js:574
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:281 templates/js/translated/order.js:525
+#: order/serializers.py:281 templates/js/translated/order.js:585
msgid "Enter serial numbers for incoming stock items"
msgstr ""
@@ -3578,7 +3606,7 @@ msgstr ""
#: order/templates/order/order_base.html:94
#: order/templates/order/sales_order_base.html:89
-#: templates/js/translated/stock.js:2459
+#: templates/js/translated/stock.js:2415
msgid "Order Status"
msgstr ""
@@ -3650,10 +3678,10 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/bom.js:76 templates/js/translated/build.js:380
-#: templates/js/translated/build.js:528 templates/js/translated/build.js:1547
-#: templates/js/translated/order.js:602 templates/js/translated/order.js:1605
-#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769
+#: templates/js/translated/bom.js:76 templates/js/translated/build.js:381
+#: templates/js/translated/build.js:529 templates/js/translated/build.js:1558
+#: templates/js/translated/order.js:662 templates/js/translated/order.js:1693
+#: templates/js/translated/stock.js:557 templates/js/translated/stock.js:725
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr ""
@@ -3717,8 +3745,8 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:940 templates/js/translated/order.js:1403
-#: templates/js/translated/order.js:1533
+#: templates/js/translated/order.js:1000 templates/js/translated/order.js:1491
+#: templates/js/translated/order.js:1621
msgid "Items"
msgstr ""
@@ -3752,9 +3780,9 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:27
-#: order/templates/order/purchase_order_detail.html:182
+#: order/templates/order/purchase_order_detail.html:166
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:245
+#: order/templates/order/sales_order_detail.html:233
msgid "Add Line Item"
msgstr ""
@@ -3794,7 +3822,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:122
-#: templates/js/translated/order.js:1361
+#: templates/js/translated/order.js:1449
msgid "Customer Reference"
msgstr ""
@@ -3827,7 +3855,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:48
-#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1465
+#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1466
msgid "Actions"
msgstr ""
@@ -3902,31 +3930,31 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:499
+#: part/api.py:502
msgid "Valid"
msgstr ""
-#: part/api.py:500
+#: part/api.py:503
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:505
+#: part/api.py:508
msgid "This option must be selected"
msgstr ""
-#: part/api.py:847
+#: part/api.py:866
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:851
+#: part/api.py:870
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:866
+#: part/api.py:885
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:897 part/api.py:901 part/api.py:916 part/api.py:920
+#: part/api.py:916 part/api.py:920 part/api.py:935 part/api.py:939
msgid "This field is required"
msgstr ""
@@ -3944,7 +3972,7 @@ msgid "Available Stock"
msgstr ""
#: part/bom.py:128 part/templates/part/part_base.html:203
-#: templates/js/translated/part.js:1323
+#: templates/js/translated/part.js:1324
msgid "On Order"
msgstr ""
@@ -3976,7 +4004,7 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:97 part/models.py:2571 part/templates/part/category.html:15
+#: part/models.py:97 part/models.py:2585 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -3993,7 +4021,7 @@ msgstr ""
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:37
-#: templates/js/translated/part.js:1685 templates/navbar.html:21
+#: templates/js/translated/part.js:1686 templates/navbar.html:21
#: templates/stats.html:92 templates/stats.html:101 users/models.py:41
msgid "Parts"
msgstr ""
@@ -4023,7 +4051,7 @@ msgstr ""
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:803 part/models.py:2624
+#: part/models.py:803 part/models.py:2638
msgid "Part name"
msgstr ""
@@ -4056,11 +4084,11 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:841 part/models.py:2321 part/models.py:2570
+#: part/models.py:841 part/models.py:2335 part/models.py:2584
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:223
-#: templates/js/translated/part.js:1290
+#: templates/js/translated/part.js:1291
msgid "Category"
msgstr ""
@@ -4069,8 +4097,8 @@ msgid "Part category"
msgstr ""
#: part/models.py:847 part/templates/part/part_base.html:274
-#: templates/js/translated/part.js:618 templates/js/translated/part.js:1243
-#: templates/js/translated/stock.js:1683
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:1244
+#: templates/js/translated/stock.js:1639
msgid "IPN"
msgstr ""
@@ -4083,7 +4111,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:855 part/templates/part/part_base.html:281
-#: report/models.py:200 templates/js/translated/part.js:622
+#: report/models.py:200 templates/js/translated/part.js:623
msgid "Revision"
msgstr ""
@@ -4175,301 +4203,309 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2371
+#: part/models.py:2385
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2388
+#: part/models.py:2402
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2408 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:1311
+#: part/models.py:2422 templates/js/translated/part.js:1737
+#: templates/js/translated/stock.js:1267
msgid "Test Name"
msgstr ""
-#: part/models.py:2409
+#: part/models.py:2423
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2414
+#: part/models.py:2428
msgid "Test Description"
msgstr ""
-#: part/models.py:2415
+#: part/models.py:2429
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2420 templates/js/translated/part.js:1745
+#: part/models.py:2434 templates/js/translated/part.js:1746
#: templates/js/translated/table_filters.js:276
msgid "Required"
msgstr ""
-#: part/models.py:2421
+#: part/models.py:2435
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2426 templates/js/translated/part.js:1753
+#: part/models.py:2440 templates/js/translated/part.js:1754
msgid "Requires Value"
msgstr ""
-#: part/models.py:2427
+#: part/models.py:2441
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2432 templates/js/translated/part.js:1760
+#: part/models.py:2446 templates/js/translated/part.js:1761
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2433
+#: part/models.py:2447
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2444
+#: part/models.py:2458
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2480
+#: part/models.py:2494
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2488
+#: part/models.py:2502
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2495
+#: part/models.py:2509
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2525
+#: part/models.py:2539
msgid "Parent Part"
msgstr ""
-#: part/models.py:2527 part/models.py:2576 part/models.py:2577
+#: part/models.py:2541 part/models.py:2590 part/models.py:2591
#: templates/InvenTree/settings/settings.html:218
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2529
+#: part/models.py:2543
msgid "Data"
msgstr ""
-#: part/models.py:2529
+#: part/models.py:2543
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2581 templates/InvenTree/settings/settings.html:227
+#: part/models.py:2595 templates/InvenTree/settings/settings.html:227
msgid "Default Value"
msgstr ""
-#: part/models.py:2582
+#: part/models.py:2596
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2616
+#: part/models.py:2630
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2619 templates/js/translated/model_renderers.js:182
+#: part/models.py:2633 templates/js/translated/model_renderers.js:182
msgid "Part ID"
msgstr ""
-#: part/models.py:2620
+#: part/models.py:2634
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2623
+#: part/models.py:2637
msgid "Part Name"
msgstr ""
-#: part/models.py:2627
+#: part/models.py:2641
msgid "Part IPN"
msgstr ""
-#: part/models.py:2628
+#: part/models.py:2642
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2645
msgid "Level"
msgstr ""
-#: part/models.py:2632
+#: part/models.py:2646
msgid "BOM level"
msgstr ""
-#: part/models.py:2692
+#: part/models.py:2707
msgid "Select parent part"
msgstr ""
-#: part/models.py:2700
+#: part/models.py:2715
msgid "Sub part"
msgstr ""
-#: part/models.py:2701
+#: part/models.py:2716
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2707
+#: part/models.py:2722
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2709 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:791 templates/js/translated/bom.js:865
+#: part/models.py:2724 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2709
+#: part/models.py:2724
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2712 part/templates/part/upload_bom.html:55
+#: part/models.py:2727 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2713
+#: part/models.py:2728
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2716
+#: part/models.py:2731
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2719
+#: part/models.py:2734
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2721
+#: part/models.py:2736
msgid "Checksum"
msgstr ""
-#: part/models.py:2721
+#: part/models.py:2736
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2725 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:882
+#: part/models.py:2740 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:880
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2726
+#: part/models.py:2741
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2731 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:874
+#: part/models.py:2746 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:872
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2732
+#: part/models.py:2747
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2817 stock/models.py:394
+#: part/models.py:2832 stock/models.py:446
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2826 part/models.py:2828
+#: part/models.py:2841 part/models.py:2843
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2957
+#: part/models.py:2972
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2979
+#: part/models.py:2994
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2991
+#: part/models.py:3006
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2999
+#: part/models.py:3014
msgid "Substitute part"
msgstr ""
-#: part/models.py:3010
+#: part/models.py:3025
msgid "Part 1"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3029
msgid "Part 2"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3029
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3046
+#: part/models.py:3061
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
-#: part/serializers.py:667
+#: part/serializers.py:670
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:678
+#: part/serializers.py:681
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:679
+#: part/serializers.py:682
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:684
+#: part/serializers.py:687
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:685
+#: part/serializers.py:688
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:690
+#: part/serializers.py:693
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:691
+#: part/serializers.py:694
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:699
+msgid "Copy Substitute Parts"
+msgstr ""
+
+#: part/serializers.py:700
+msgid "Copy substitute parts when duplicate BOM items"
+msgstr ""
+
+#: part/serializers.py:744
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:735
+#: part/serializers.py:745
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:762
+#: part/serializers.py:772
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:805
+#: part/serializers.py:815
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:808
+#: part/serializers.py:818
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:811
+#: part/serializers.py:821
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:820
+#: part/serializers.py:830
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:828
+#: part/serializers.py:838
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:847
+#: part/serializers.py:857
msgid "At least one BOM item is required"
msgstr ""
@@ -4496,7 +4532,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:279
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:274
msgid "BOM actions"
msgstr ""
@@ -4548,7 +4584,7 @@ msgstr ""
msgid "Top level part category"
msgstr ""
-#: part/templates/part/category.html:114 part/templates/part/category.html:205
+#: part/templates/part/category.html:114 part/templates/part/category.html:202
#: part/templates/part/category_sidebar.html:7
msgid "Subcategories"
msgstr ""
@@ -4557,55 +4593,51 @@ msgstr ""
msgid "Parts (Including subcategories)"
msgstr ""
-#: part/templates/part/category.html:156
-msgid "Export Part Data"
-msgstr ""
-
-#: part/templates/part/category.html:157 part/templates/part/category.html:181
-msgid "Export"
-msgstr ""
-
-#: part/templates/part/category.html:160
+#: part/templates/part/category.html:157
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:161 templates/js/translated/bom.js:365
+#: part/templates/part/category.html:158 templates/js/translated/bom.js:365
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:175
+#: part/templates/part/category.html:172
msgid "Set category"
msgstr ""
-#: part/templates/part/category.html:175
+#: part/templates/part/category.html:172
msgid "Set Category"
msgstr ""
-#: part/templates/part/category.html:179
+#: part/templates/part/category.html:176
msgid "Print Labels"
msgstr ""
-#: part/templates/part/category.html:181
+#: part/templates/part/category.html:178
+msgid "Export"
+msgstr ""
+
+#: part/templates/part/category.html:178
msgid "Export Data"
msgstr ""
-#: part/templates/part/category.html:195
+#: part/templates/part/category.html:192
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:288
+#: part/templates/part/category.html:285
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:315
+#: part/templates/part/category.html:305
msgid "Create Part"
msgstr ""
-#: part/templates/part/category.html:318
+#: part/templates/part/category.html:308
msgid "Create another part after this one"
msgstr ""
-#: part/templates/part/category.html:319
+#: part/templates/part/category.html:309
msgid "Part created successfully"
msgstr ""
@@ -4676,155 +4708,150 @@ msgstr ""
msgid "Part Stock"
msgstr ""
-#: part/templates/part/detail.html:33
-#, python-format
-msgid "Showing stock for all variants of %(full_name)s"
-msgstr ""
-
-#: part/templates/part/detail.html:43
+#: part/templates/part/detail.html:38
msgid "Part Stock Allocations"
msgstr ""
-#: part/templates/part/detail.html:60
+#: part/templates/part/detail.html:55
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:65
+#: part/templates/part/detail.html:60
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:122
+#: part/templates/part/detail.html:117
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:168
+#: part/templates/part/detail.html:163
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:172
+#: part/templates/part/detail.html:167
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:173
+#: part/templates/part/detail.html:168
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:200
+#: part/templates/part/detail.html:195
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:237 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:52
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:241 part/templates/part/detail.html:242
+#: part/templates/part/detail.html:236 part/templates/part/detail.html:237
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:262 part/templates/part/part_sidebar.html:18
+#: part/templates/part/detail.html:257 part/templates/part/part_sidebar.html:18
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:267
+#: part/templates/part/detail.html:262
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:271 templates/js/translated/bom.js:283
+#: part/templates/part/detail.html:266 templates/js/translated/bom.js:283
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:268
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:283
+#: part/templates/part/detail.html:278
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:285 templates/js/translated/part.js:272
+#: part/templates/part/detail.html:279 templates/js/translated/part.js:272
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:287
+#: part/templates/part/detail.html:280
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:285
msgid "New BOM Item"
msgstr ""
-#: part/templates/part/detail.html:293
+#: part/templates/part/detail.html:286
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:306
+#: part/templates/part/detail.html:299
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:323
+#: part/templates/part/detail.html:316
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:348
+#: part/templates/part/detail.html:341
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:363
+#: part/templates/part/detail.html:356
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:391
+#: part/templates/part/detail.html:384
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:407
+#: part/templates/part/detail.html:400
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:589
+#: part/templates/part/detail.html:582
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:590
+#: part/templates/part/detail.html:583
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:639
+#: part/templates/part/detail.html:632
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:696
+#: part/templates/part/detail.html:689
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:704
+#: part/templates/part/detail.html:697
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:801
+#: part/templates/part/detail.html:794
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:858
+#: part/templates/part/detail.html:844
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:971
+#: part/templates/part/detail.html:957
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:983
+#: part/templates/part/detail.html:969
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:995
+#: part/templates/part/detail.html:981
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1084
+#: part/templates/part/detail.html:1070
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4969,7 +4996,7 @@ msgstr ""
#: templates/js/translated/company.js:508
#: templates/js/translated/company.js:765
#: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:533 templates/js/translated/part.js:610
+#: templates/js/translated/part.js:534 templates/js/translated/part.js:611
msgid "Inactive"
msgstr ""
@@ -4983,7 +5010,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2356
+#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2444
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5000,12 +5027,12 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:903
+#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:901
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1154
-#: templates/js/translated/part.js:1327
+#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1155
+#: templates/js/translated/part.js:1328
msgid "Building"
msgstr ""
@@ -5057,7 +5084,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:857
+#: templates/js/translated/bom.js:855
msgid "No supplier pricing available"
msgstr ""
@@ -5177,7 +5204,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:851
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849
msgid "Supplier Cost"
msgstr ""
@@ -5199,7 +5226,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1390
+#: part/templates/part/prices.html:215 part/views.py:1325
msgid "Add Internal Price Break"
msgstr ""
@@ -5219,9 +5246,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813
-#: templates/js/translated/part.js:497 templates/js/translated/part.js:1144
-#: templates/js/translated/part.js:1331
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811
+#: templates/js/translated/part.js:498 templates/js/translated/part.js:1145
+#: templates/js/translated/part.js:1332
msgid "No Stock"
msgstr ""
@@ -5275,100 +5302,100 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:172
+#: part/templatetags/inventree_extras.py:174
msgid "Unknown database"
msgstr ""
-#: part/views.py:90
+#: part/views.py:88
msgid "Set Part Category"
msgstr ""
-#: part/views.py:140
+#: part/views.py:138
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:212
+#: part/views.py:210
msgid "Match References"
msgstr ""
-#: part/views.py:509
+#: part/views.py:507
msgid "None"
msgstr ""
-#: part/views.py:568
+#: part/views.py:566
msgid "Part QR Code"
msgstr ""
-#: part/views.py:670
+#: part/views.py:668
msgid "Select Part Image"
msgstr ""
-#: part/views.py:696
+#: part/views.py:694
msgid "Updated part image"
msgstr ""
-#: part/views.py:699
+#: part/views.py:697
msgid "Part image not found"
msgstr ""
-#: part/views.py:850
+#: part/views.py:785
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:857
+#: part/views.py:792
msgid "Part was deleted"
msgstr ""
-#: part/views.py:866
+#: part/views.py:801
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1015
+#: part/views.py:950
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1025
+#: part/views.py:960
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1032
+#: part/views.py:967
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1091 templates/js/translated/part.js:315
+#: part/views.py:1026 templates/js/translated/part.js:315
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1129
+#: part/views.py:1064
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1135
+#: part/views.py:1070
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1144
+#: part/views.py:1079
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1245
+#: part/views.py:1180
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1301
+#: part/views.py:1236
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1323
+#: part/views.py:1258
msgid "Added new price break"
msgstr ""
-#: part/views.py:1399
+#: part/views.py:1334
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1407
+#: part/views.py:1342
msgid "Delete Internal Price Break"
msgstr ""
@@ -5574,12 +5601,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:556 stock/templates/stock/item_base.html:151
-#: templates/js/translated/build.js:373 templates/js/translated/build.js:521
-#: templates/js/translated/build.js:919 templates/js/translated/build.js:1295
+#: stock/models.py:608 stock/templates/stock/item_base.html:151
+#: templates/js/translated/build.js:374 templates/js/translated/build.js:522
+#: templates/js/translated/build.js:920 templates/js/translated/build.js:1296
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:99 templates/js/translated/order.js:2062
-#: templates/js/translated/order.js:2151 templates/js/translated/stock.js:423
+#: templates/js/translated/order.js:99 templates/js/translated/order.js:2150
+#: templates/js/translated/order.js:2239 templates/js/translated/stock.js:422
msgid "Serial Number"
msgstr ""
@@ -5588,19 +5615,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:2052
+#: stock/models.py:2104
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:2058
+#: stock/models.py:2110
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:50
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:924 templates/js/translated/stock.js:2657
+#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2613
msgid "Date"
msgstr ""
@@ -5618,26 +5645,26 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756
-#: templates/js/translated/stock.js:2910
+#: templates/js/translated/stock.js:542 templates/js/translated/stock.js:712
+#: templates/js/translated/stock.js:2866
msgid "Serial"
msgstr ""
-#: stock/api.py:501
+#: stock/api.py:503
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:508
+#: stock/api.py:510
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:533
+#: stock/api.py:535
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/forms.py:74 stock/forms.py:198 stock/models.py:613
+#: stock/forms.py:74 stock/forms.py:198 stock/models.py:665
#: stock/templates/stock/item_base.html:188
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1791
msgid "Expiry Date"
msgstr ""
@@ -5677,228 +5704,228 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:62 stock/models.py:650
+#: stock/models.py:62 stock/models.py:702
#: stock/templates/stock/item_base.html:402
msgid "Owner"
msgstr ""
-#: stock/models.py:63 stock/models.py:651
+#: stock/models.py:63 stock/models.py:703
msgid "Select Owner"
msgstr ""
-#: stock/models.py:375
+#: stock/models.py:427
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:463
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:421 stock/models.py:430
+#: stock/models.py:473 stock/models.py:482
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:422
+#: stock/models.py:474
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:444
+#: stock/models.py:496
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:450
+#: stock/models.py:502
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:457
+#: stock/models.py:509
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:500
+#: stock/models.py:552
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:509
+#: stock/models.py:561
msgid "Base part"
msgstr ""
-#: stock/models.py:517
+#: stock/models.py:569
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:523 stock/templates/stock/location.html:16
+#: stock/models.py:575 stock/templates/stock/location.html:16
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:526
+#: stock/models.py:578
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:585
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:539 stock/templates/stock/item_base.html:277
+#: stock/models.py:591 stock/templates/stock/item_base.html:277
msgid "Installed In"
msgstr ""
-#: stock/models.py:542
+#: stock/models.py:594
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:558
+#: stock/models.py:610
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:572
+#: stock/models.py:624
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:576
+#: stock/models.py:628
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:585
+#: stock/models.py:637
msgid "Source Build"
msgstr ""
-#: stock/models.py:587
+#: stock/models.py:639
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:598
+#: stock/models.py:650
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:601
+#: stock/models.py:653
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:607
+#: stock/models.py:659
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:614
+#: stock/models.py:666
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:627
+#: stock/models.py:679
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:627
+#: stock/models.py:679
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:637 stock/templates/stock/item.html:121
+#: stock/models.py:689 stock/templates/stock/item.html:121
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:646
+#: stock/models.py:698
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1171
+#: stock/models.py:1223
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1177
+#: stock/models.py:1229
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1183
+#: stock/models.py:1235
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1186
+#: stock/models.py:1238
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1189
+#: stock/models.py:1241
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1196
+#: stock/models.py:1248
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1267
+#: stock/models.py:1319
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1270
+#: stock/models.py:1322
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1273
+#: stock/models.py:1325
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1276
+#: stock/models.py:1328
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1279
+#: stock/models.py:1331
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1282
+#: stock/models.py:1334
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1289 stock/serializers.py:832
+#: stock/models.py:1341 stock/serializers.py:832
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1293
+#: stock/models.py:1345
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1297
+#: stock/models.py:1349
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1301
+#: stock/models.py:1353
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1473
+#: stock/models.py:1525
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1972
+#: stock/models.py:2024
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2029
+#: stock/models.py:2081
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2035
+#: stock/models.py:2087
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2053
+#: stock/models.py:2105
msgid "Test name"
msgstr ""
-#: stock/models.py:2059
+#: stock/models.py:2111
msgid "Test result"
msgstr ""
-#: stock/models.py:2065
+#: stock/models.py:2117
msgid "Test output value"
msgstr ""
-#: stock/models.py:2072
+#: stock/models.py:2124
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2078
+#: stock/models.py:2130
msgid "Test notes"
msgstr ""
@@ -5935,7 +5962,7 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:363 stock/views.py:1127
+#: stock/serializers.py:363 stock/views.py:1009
msgid "Serial numbers already exist"
msgstr ""
@@ -6052,11 +6079,11 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:147 templates/js/translated/stock.js:3019
+#: stock/templates/stock/item.html:147 templates/js/translated/stock.js:2975
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1479
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1435
msgid "Add Test Result"
msgstr ""
@@ -6070,7 +6097,7 @@ msgstr ""
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:46 templates/stock_table.html:24
+#: stock/templates/stock/item_base.html:46 templates/stock_table.html:21
msgid "Scan to Location"
msgstr ""
@@ -6083,15 +6110,15 @@ msgid "Stock adjustment actions"
msgstr ""
#: stock/templates/stock/item_base.html:69
-#: stock/templates/stock/location.html:52 templates/stock_table.html:50
+#: stock/templates/stock/location.html:52 templates/stock_table.html:47
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48
+#: stock/templates/stock/item_base.html:72 templates/stock_table.html:45
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49
+#: stock/templates/stock/item_base.html:75 templates/stock_table.html:46
msgid "Remove stock"
msgstr ""
@@ -6100,11 +6127,11 @@ msgid "Serialize stock"
msgstr ""
#: stock/templates/stock/item_base.html:82
-#: stock/templates/stock/location.html:58 templates/stock_table.html:51
+#: stock/templates/stock/location.html:58 templates/stock_table.html:48
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85 templates/stock_table.html:54
+#: stock/templates/stock/item_base.html:85 templates/stock_table.html:51
msgid "Assign to customer"
msgstr ""
@@ -6181,7 +6208,7 @@ msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:201
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1807
msgid "Last Updated"
msgstr ""
@@ -6218,7 +6245,7 @@ msgid "This stock item is serialized - it has a unique serial number and the qua
msgstr ""
#: stock/templates/stock/item_base.html:296
-#: templates/js/translated/build.js:1317
+#: templates/js/translated/build.js:1318
msgid "No location set"
msgstr ""
@@ -6320,11 +6347,11 @@ msgstr ""
msgid "Stock Locations"
msgstr ""
-#: stock/templates/stock/location.html:185 templates/stock_table.html:30
+#: stock/templates/stock/location.html:185 templates/stock_table.html:27
msgid "Printing Actions"
msgstr ""
-#: stock/templates/stock/location.html:189 templates/stock_table.html:34
+#: stock/templates/stock/location.html:189 templates/stock_table.html:31
msgid "Print labels"
msgstr ""
@@ -6348,7 +6375,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:749
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:631
msgid "Convert Stock Item"
msgstr ""
@@ -6369,95 +6396,95 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181 templates/js/translated/stock.js:139
+#: stock/views.py:152 templates/js/translated/stock.js:138
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:728 stock/views.py:854 stock/views.py:1136
+#: stock/views.py:259 stock/views.py:610 stock/views.py:736 stock/views.py:1018
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:274
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:293
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:302
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:342
+#: stock/views.py:313
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:353
+#: stock/views.py:324
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:370
+#: stock/views.py:341
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:371
+#: stock/views.py:342
msgid "Check the confirmation box"
msgstr ""
-#: stock/views.py:475
+#: stock/views.py:357
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:500
+#: stock/views.py:382
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:597 templates/js/translated/stock.js:1074
+#: stock/views.py:479 templates/js/translated/stock.js:1030
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:608
+#: stock/views.py:490
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:630 templates/js/translated/stock.js:332
+#: stock/views.py:512 templates/js/translated/stock.js:331
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:780
+#: stock/views.py:662
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:881
+#: stock/views.py:763
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1023 templates/js/translated/stock.js:312
+#: stock/views.py:905 templates/js/translated/stock.js:311
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1105
+#: stock/views.py:987
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1205
+#: stock/views.py:1087
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1218
+#: stock/views.py:1100
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1229
+#: stock/views.py:1111
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1236
+#: stock/views.py:1118
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1245
+#: stock/views.py:1127
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -7381,14 +7408,14 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1335
+#: templates/js/translated/bom.js:1340
msgid "Required Quantity"
msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:804 templates/js/translated/build.js:1411
-#: templates/js/translated/build.js:2057
+#: templates/js/translated/bom.js:802 templates/js/translated/build.js:1412
+#: templates/js/translated/build.js:2110
#: templates/js/translated/table_filters.js:178
msgid "Available"
msgstr ""
@@ -7580,7 +7607,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:982
msgid "Remove stock item"
msgstr ""
@@ -7635,12 +7662,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286
-#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518
+#: templates/js/translated/order.js:429 templates/js/translated/tables.js:53
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519
+#: templates/js/translated/order.js:430
msgid "Select file format"
msgstr ""
@@ -7716,275 +7743,307 @@ msgstr ""
msgid "Edit BOM Item Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:741
+#: templates/js/translated/bom.js:739
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:745 templates/js/translated/build.js:1393
+#: templates/js/translated/bom.js:743 templates/js/translated/build.js:1394
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:750
+#: templates/js/translated/bom.js:748
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:822
+#: templates/js/translated/bom.js:820
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:837
+#: templates/js/translated/bom.js:835
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:844
+#: templates/js/translated/bom.js:842
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:893 templates/js/translated/bom.js:982
+#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:953
+#: templates/js/translated/bom.js:951
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:955
+#: templates/js/translated/bom.js:953
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:957
+#: templates/js/translated/bom.js:955
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138
+#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:961 templates/js/translated/bom.js:1121
+#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1060 templates/js/translated/build.js:1137
+#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1138
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1116
+#: templates/js/translated/bom.js:1121
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:1318 templates/js/translated/build.js:1377
+#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1378
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1340
+#: templates/js/translated/bom.js:1345
msgid "Inherited from parent BOM"
msgstr ""
-#: templates/js/translated/build.js:85
+#: templates/js/translated/build.js:86
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:119
+#: templates/js/translated/build.js:120
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:140
+#: templates/js/translated/build.js:141
msgid "Build order is ready to be completed"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:146
msgid "Build Order is incomplete"
msgstr ""
-#: templates/js/translated/build.js:173
+#: templates/js/translated/build.js:174
msgid "Complete Build Order"
msgstr ""
-#: templates/js/translated/build.js:214 templates/js/translated/stock.js:92
-#: templates/js/translated/stock.js:181
+#: templates/js/translated/build.js:215 templates/js/translated/stock.js:91
+#: templates/js/translated/stock.js:180
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:216 templates/js/translated/stock.js:94
-#: templates/js/translated/stock.js:183
+#: templates/js/translated/build.js:217 templates/js/translated/stock.js:93
+#: templates/js/translated/stock.js:182
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/build.js:225
+#: templates/js/translated/build.js:226
msgid "The Bill of Materials contains trackable parts"
msgstr ""
-#: templates/js/translated/build.js:226
+#: templates/js/translated/build.js:227
msgid "Build outputs must be generated individually"
msgstr ""
-#: templates/js/translated/build.js:234
+#: templates/js/translated/build.js:235
msgid "Trackable parts can have serial numbers specified"
msgstr ""
-#: templates/js/translated/build.js:235
+#: templates/js/translated/build.js:236
msgid "Enter serial numbers to generate multiple single build outputs"
msgstr ""
-#: templates/js/translated/build.js:242
+#: templates/js/translated/build.js:243
msgid "Create Build Output"
msgstr ""
-#: templates/js/translated/build.js:273
+#: templates/js/translated/build.js:274
msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:284
+#: templates/js/translated/build.js:285
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:293
+#: templates/js/translated/build.js:294
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:301
+#: templates/js/translated/build.js:302
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:324
+#: templates/js/translated/build.js:325
msgid "Are you sure you wish to unallocate stock items from this build?"
msgstr ""
-#: templates/js/translated/build.js:342
+#: templates/js/translated/build.js:343
msgid "Unallocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:360 templates/js/translated/build.js:508
+#: templates/js/translated/build.js:361 templates/js/translated/build.js:509
msgid "Select Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:361 templates/js/translated/build.js:509
+#: templates/js/translated/build.js:362 templates/js/translated/build.js:510
msgid "At least one build output must be selected"
msgstr ""
-#: templates/js/translated/build.js:415 templates/js/translated/build.js:563
+#: templates/js/translated/build.js:416 templates/js/translated/build.js:564
msgid "Output"
msgstr ""
-#: templates/js/translated/build.js:431
+#: templates/js/translated/build.js:432
msgid "Complete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:576
+#: templates/js/translated/build.js:577
msgid "Delete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:665
+#: templates/js/translated/build.js:666
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:703 templates/js/translated/order.js:1965
+#: templates/js/translated/build.js:704 templates/js/translated/order.js:2053
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:885
+#: templates/js/translated/build.js:886
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1334 templates/js/translated/build.js:2068
-#: templates/js/translated/order.js:2099
+#: templates/js/translated/build.js:1335 templates/js/translated/build.js:2121
+#: templates/js/translated/order.js:2187
msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1336 templates/js/translated/build.js:2069
-#: templates/js/translated/order.js:2100
+#: templates/js/translated/build.js:1337 templates/js/translated/build.js:2122
+#: templates/js/translated/order.js:2188
msgid "Delete stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1354
+#: templates/js/translated/build.js:1355
msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:1364
+#: templates/js/translated/build.js:1365
msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:1389
+#: templates/js/translated/build.js:1390
msgid "Substitute parts available"
msgstr ""
-#: templates/js/translated/build.js:1406
+#: templates/js/translated/build.js:1407
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1416 templates/js/translated/build.js:1656
-#: templates/js/translated/build.js:2064 templates/js/translated/order.js:2366
+#: templates/js/translated/build.js:1417 templates/js/translated/build.js:1667
+#: templates/js/translated/build.js:2117 templates/js/translated/order.js:2454
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1472 templates/js/translated/order.js:2446
+#: templates/js/translated/build.js:1473 templates/js/translated/order.js:2534
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:1476 templates/stock_table.html:53
+#: templates/js/translated/build.js:1477 templates/stock_table.html:50
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1479 templates/js/translated/order.js:2439
+#: templates/js/translated/build.js:1480 templates/js/translated/order.js:2527
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:1558 templates/js/translated/order.js:1616
-msgid "Specify stock allocation quantity"
-msgstr ""
-
-#: templates/js/translated/build.js:1629 templates/js/translated/label.js:134
-#: templates/js/translated/order.js:1667 templates/js/translated/report.js:225
+#: templates/js/translated/build.js:1519 templates/js/translated/label.js:134
+#: templates/js/translated/order.js:1755 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1630 templates/js/translated/order.js:1668
+#: templates/js/translated/build.js:1520 templates/js/translated/order.js:1756
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:1644 templates/js/translated/order.js:1682
+#: templates/js/translated/build.js:1569 templates/js/translated/order.js:1704
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:1640
+msgid "All Parts Allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:1641
+msgid "All selected parts have been fully allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:1655 templates/js/translated/order.js:1770
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1717
+#: templates/js/translated/build.js:1684 templates/js/translated/order.js:1805
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1674
+#: templates/js/translated/build.js:1685
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1730
+#: templates/js/translated/build.js:1696 templates/js/translated/order.js:1818
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1757 templates/js/translated/order.js:1807
+#: templates/js/translated/build.js:1768 templates/js/translated/order.js:1895
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1875
+#: templates/js/translated/build.js:1865
+msgid "Automatic Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1866
+msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
+msgstr ""
+
+#: templates/js/translated/build.js:1868
+msgid "If a location is specifed, stock will only be allocated from that location"
+msgstr ""
+
+#: templates/js/translated/build.js:1869
+msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
+msgstr ""
+
+#: templates/js/translated/build.js:1870
+msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
+msgstr ""
+
+#: templates/js/translated/build.js:1890
+msgid "Allocate Stock Items"
+msgstr ""
+
+#: templates/js/translated/build.js:1928
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1892 templates/js/translated/part.js:1235
-#: templates/js/translated/part.js:1646 templates/js/translated/stock.js:1643
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/build.js:1945 templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1647 templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:2567
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1912
+#: templates/js/translated/build.js:1965
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1976 templates/js/translated/stock.js:2823
+#: templates/js/translated/build.js:2029 templates/js/translated/stock.js:2779
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1988
+#: templates/js/translated/build.js:2041
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:2045
+#: templates/js/translated/build.js:2098
msgid "No parts allocated for"
msgstr ""
@@ -8049,34 +8108,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:517
-#: templates/js/translated/part.js:602
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:518
+#: templates/js/translated/part.js:603
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:521
-#: templates/js/translated/part.js:606
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:522
+#: templates/js/translated/part.js:607
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:696
+#: templates/js/translated/company.js:631 templates/js/translated/part.js:697
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:738
+#: templates/js/translated/company.js:668 templates/js/translated/part.js:739
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:739
+#: templates/js/translated/company.js:669 templates/js/translated/part.js:740
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:756
+#: templates/js/translated/company.js:688 templates/js/translated/part.js:757
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:768
+#: templates/js/translated/company.js:699 templates/js/translated/part.js:769
msgid "Delete Parameter"
msgstr ""
@@ -8085,12 +8144,12 @@ msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:429
+#: templates/js/translated/filters.js:441
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:430
+#: templates/js/translated/filters.js:442
msgid "false"
msgstr ""
@@ -8098,19 +8157,23 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:286
+#: templates/js/translated/filters.js:288
+msgid "Download data"
+msgstr ""
+
+#: templates/js/translated/filters.js:291
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:290
+#: templates/js/translated/filters.js:295
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:293
+#: templates/js/translated/filters.js:298
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:338
+#: templates/js/translated/filters.js:350
msgid "Create filter"
msgstr ""
@@ -8181,7 +8244,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1050
+#: templates/js/translated/stock.js:1006
msgid "Select Stock Items"
msgstr ""
@@ -8354,206 +8417,214 @@ msgstr ""
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:366
+#: templates/js/translated/order.js:426
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:460
+#: templates/js/translated/order.js:520
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:461
+#: templates/js/translated/order.js:521
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:481 templates/js/translated/order.js:580
+#: templates/js/translated/order.js:541 templates/js/translated/order.js:640
msgid "Add batch code"
msgstr ""
-#: templates/js/translated/order.js:487 templates/js/translated/order.js:591
+#: templates/js/translated/order.js:547 templates/js/translated/order.js:651
msgid "Add serial numbers"
msgstr ""
-#: templates/js/translated/order.js:499
+#: templates/js/translated/order.js:559
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:563 templates/js/translated/stock.js:2263
+#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2219
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:652
+#: templates/js/translated/order.js:712
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:653
+#: templates/js/translated/order.js:713
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:655
+#: templates/js/translated/order.js:715
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/order.js:674
+#: templates/js/translated/order.js:734
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:675
+#: templates/js/translated/order.js:735
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:865 templates/js/translated/part.js:809
+#: templates/js/translated/order.js:925 templates/js/translated/part.js:810
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:890 templates/js/translated/order.js:1338
+#: templates/js/translated/order.js:950 templates/js/translated/order.js:1426
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:1018 templates/js/translated/order.js:2496
+#: templates/js/translated/order.js:1074 templates/js/translated/order.js:2585
+msgid "Duplicate Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:1104 templates/js/translated/order.js:2607
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1030 templates/js/translated/order.js:2507
+#: templates/js/translated/order.js:1117 templates/js/translated/order.js:2618
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:1073
+#: templates/js/translated/order.js:1160
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:1100 templates/js/translated/order.js:2255
+#: templates/js/translated/order.js:1187 templates/js/translated/order.js:2343
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:1154 templates/js/translated/order.js:2280
-#: templates/js/translated/part.js:1863 templates/js/translated/part.js:2074
+#: templates/js/translated/order.js:1241 templates/js/translated/order.js:2368
+#: templates/js/translated/part.js:1864 templates/js/translated/part.js:2075
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1169 templates/js/translated/order.js:2296
+#: templates/js/translated/order.js:1256 templates/js/translated/order.js:2384
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:1210 templates/js/translated/order.js:2338
-#: templates/js/translated/part.js:918
+#: templates/js/translated/order.js:1297 templates/js/translated/order.js:2426
+#: templates/js/translated/part.js:919
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:1269 templates/js/translated/part.js:964
+#: templates/js/translated/order.js:1356 templates/js/translated/part.js:965
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1273 templates/js/translated/order.js:2452
+#: templates/js/translated/order.js:1360 templates/js/translated/order.js:2540
+msgid "Duplicate line item"
+msgstr ""
+
+#: templates/js/translated/order.js:1361 templates/js/translated/order.js:2541
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:1274 templates/js/translated/order.js:2456
+#: templates/js/translated/order.js:1362 templates/js/translated/order.js:2545
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1314
+#: templates/js/translated/order.js:1402
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1352
+#: templates/js/translated/order.js:1440
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1439
+#: templates/js/translated/order.js:1527
msgid "Edit shipment"
msgstr ""
-#: templates/js/translated/order.js:1442
+#: templates/js/translated/order.js:1530
msgid "Complete shipment"
msgstr ""
-#: templates/js/translated/order.js:1447
+#: templates/js/translated/order.js:1535
msgid "Delete shipment"
msgstr ""
-#: templates/js/translated/order.js:1467
+#: templates/js/translated/order.js:1555
msgid "Edit Shipment"
msgstr ""
-#: templates/js/translated/order.js:1484
+#: templates/js/translated/order.js:1572
msgid "Delete Shipment"
msgstr ""
-#: templates/js/translated/order.js:1518
+#: templates/js/translated/order.js:1606
msgid "No matching shipments found"
msgstr ""
-#: templates/js/translated/order.js:1528
+#: templates/js/translated/order.js:1616
msgid "Shipment Reference"
msgstr ""
-#: templates/js/translated/order.js:1552
+#: templates/js/translated/order.js:1640
msgid "Not shipped"
msgstr ""
-#: templates/js/translated/order.js:1558
+#: templates/js/translated/order.js:1646
msgid "Tracking"
msgstr ""
-#: templates/js/translated/order.js:1718
+#: templates/js/translated/order.js:1806
msgid "Allocate Stock Items to Sales Order"
msgstr ""
-#: templates/js/translated/order.js:1926
+#: templates/js/translated/order.js:2014
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:2015
+#: templates/js/translated/order.js:2103
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:2032
+#: templates/js/translated/order.js:2120
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:2033
+#: templates/js/translated/order.js:2121
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:2076 templates/js/translated/order.js:2165
-#: templates/js/translated/stock.js:1559
+#: templates/js/translated/order.js:2164 templates/js/translated/order.js:2253
+#: templates/js/translated/stock.js:1515
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/order.js:2084 templates/js/translated/order.js:2174
+#: templates/js/translated/order.js:2172 templates/js/translated/order.js:2262
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:2436
+#: templates/js/translated/order.js:2524
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:2442
+#: templates/js/translated/order.js:2530
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:2449 templates/js/translated/order.js:2616
+#: templates/js/translated/order.js:2537 templates/js/translated/order.js:2727
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:2460
+#: templates/js/translated/order.js:2549
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:2463
+#: templates/js/translated/order.js:2552
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:2522
+#: templates/js/translated/order.js:2633
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:2624
+#: templates/js/translated/order.js:2735
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:2638
+#: templates/js/translated/order.js:2749
msgid "No matching line items"
msgstr ""
@@ -8677,117 +8748,117 @@ msgstr ""
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:481
+#: templates/js/translated/part.js:482
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:509 templates/js/translated/part.js:594
+#: templates/js/translated/part.js:510 templates/js/translated/part.js:595
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:513 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:514 templates/js/translated/part.js:599
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:525
+#: templates/js/translated/part.js:526
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:529
+#: templates/js/translated/part.js:530
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:644
+#: templates/js/translated/part.js:645
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1034
+#: templates/js/translated/part.js:1035
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1058
+#: templates/js/translated/part.js:1059
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1125 templates/js/translated/part.js:1385
+#: templates/js/translated/part.js:1126 templates/js/translated/part.js:1386
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1295
+#: templates/js/translated/part.js:1296
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1318
+#: templates/js/translated/part.js:1319
#: templates/js/translated/table_filters.js:425
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1409 templates/js/translated/part.js:1581
-#: templates/js/translated/stock.js:2572
+#: templates/js/translated/part.js:1410 templates/js/translated/part.js:1582
+#: templates/js/translated/stock.js:2528
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1425
+#: templates/js/translated/part.js:1426
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1600 templates/js/translated/stock.js:2591
+#: templates/js/translated/part.js:1601 templates/js/translated/stock.js:2547
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1664
+#: templates/js/translated/part.js:1665
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1678 templates/js/translated/stock.js:2635
+#: templates/js/translated/part.js:1679 templates/js/translated/stock.js:2591
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1722
+#: templates/js/translated/part.js:1723
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1773 templates/js/translated/stock.js:1270
+#: templates/js/translated/part.js:1774 templates/js/translated/stock.js:1226
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1774 templates/js/translated/stock.js:1271
-#: templates/js/translated/stock.js:1517
+#: templates/js/translated/part.js:1775 templates/js/translated/stock.js:1227
+#: templates/js/translated/stock.js:1473
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1780
+#: templates/js/translated/part.js:1781
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1802
+#: templates/js/translated/part.js:1803
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1816
+#: templates/js/translated/part.js:1817
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1841
+#: templates/js/translated/part.js:1842
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1896
+#: templates/js/translated/part.js:1897
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1897
+#: templates/js/translated/part.js:1898
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1998
+#: templates/js/translated/part.js:1999
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:2017
+#: templates/js/translated/part.js:2018
msgid "Single Price Difference"
msgstr ""
@@ -8861,368 +8932,356 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:102
+#: templates/js/translated/stock.js:101
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:111
+#: templates/js/translated/stock.js:110
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:154
+#: templates/js/translated/stock.js:153
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:194
+#: templates/js/translated/stock.js:193
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:233
+#: templates/js/translated/stock.js:232
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/stock.js:238
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:381
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:395
+#: templates/js/translated/stock.js:394
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:420
+#: templates/js/translated/stock.js:419
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425
+#: templates/js/translated/stock.js:423 templates/js/translated/stock.js:424
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:441
+#: templates/js/translated/stock.js:440
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:461
+#: templates/js/translated/stock.js:460
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:470
+#: templates/js/translated/stock.js:469
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:515
-msgid "Export Stock"
-msgstr ""
-
-#: templates/js/translated/stock.js:526
-msgid "Include Sublocations"
-msgstr ""
-
-#: templates/js/translated/stock.js:527
-msgid "Include stock items in sublocations"
-msgstr ""
-
-#: templates/js/translated/stock.js:636
+#: templates/js/translated/stock.js:592
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:637
+#: templates/js/translated/stock.js:593
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:714
+#: templates/js/translated/stock.js:670
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:715
+#: templates/js/translated/stock.js:671
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:717
+#: templates/js/translated/stock.js:673
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:718
+#: templates/js/translated/stock.js:674
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:804
+#: templates/js/translated/stock.js:760
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:805
+#: templates/js/translated/stock.js:761
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:900
+#: templates/js/translated/stock.js:856
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:901
+#: templates/js/translated/stock.js:857
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:907
+#: templates/js/translated/stock.js:863
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:908
+#: templates/js/translated/stock.js:864
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:912
+#: templates/js/translated/stock.js:868
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:913
+#: templates/js/translated/stock.js:869
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:917
+#: templates/js/translated/stock.js:873
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:918 users/models.py:213
+#: templates/js/translated/stock.js:874 users/models.py:213
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:922
+#: templates/js/translated/stock.js:878
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1011
+#: templates/js/translated/stock.js:967
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1011
+#: templates/js/translated/stock.js:967
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1051
+#: templates/js/translated/stock.js:1007
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1209
+#: templates/js/translated/stock.js:1165
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1211
+#: templates/js/translated/stock.js:1167
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1216
+#: templates/js/translated/stock.js:1172
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1263
+#: templates/js/translated/stock.js:1219
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1266
+#: templates/js/translated/stock.js:1222
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1292
+#: templates/js/translated/stock.js:1248
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1348
+#: templates/js/translated/stock.js:1304
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1500
+#: templates/js/translated/stock.js:1456
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1522
+#: templates/js/translated/stock.js:1478
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1551
+#: templates/js/translated/stock.js:1507
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1511
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1563
+#: templates/js/translated/stock.js:1519
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1569
+#: templates/js/translated/stock.js:1525
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1727
+#: templates/js/translated/stock.js:1683
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1732
+#: templates/js/translated/stock.js:1688
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1691
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1739
+#: templates/js/translated/stock.js:1695
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1741
+#: templates/js/translated/stock.js:1697
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1747
+#: templates/js/translated/stock.js:1703
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1749
+#: templates/js/translated/stock.js:1705
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1751
+#: templates/js/translated/stock.js:1707
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1756
+#: templates/js/translated/stock.js:1712
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1763
+#: templates/js/translated/stock.js:1719
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1765
+#: templates/js/translated/stock.js:1721
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1767
+#: templates/js/translated/stock.js:1723
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1771
+#: templates/js/translated/stock.js:1727
#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1821
+#: templates/js/translated/stock.js:1777
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1903
+#: templates/js/translated/stock.js:1859
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1941
+#: templates/js/translated/stock.js:1897
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1962 templates/js/translated/stock.js:2010
+#: templates/js/translated/stock.js:1918 templates/js/translated/stock.js:1966
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:2050
+#: templates/js/translated/stock.js:2006
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:2077
+#: templates/js/translated/stock.js:2033
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:2079
+#: templates/js/translated/stock.js:2035
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:2278
+#: templates/js/translated/stock.js:2234
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2292
+#: templates/js/translated/stock.js:2248
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2293
+#: templates/js/translated/stock.js:2249
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2472
+#: templates/js/translated/stock.js:2428
msgid "Allocated Quantity"
msgstr ""
-#: templates/js/translated/stock.js:2682
+#: templates/js/translated/stock.js:2638
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2707
+#: templates/js/translated/stock.js:2663
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2726
+#: templates/js/translated/stock.js:2682
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2745
+#: templates/js/translated/stock.js:2701
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2763
+#: templates/js/translated/stock.js:2719
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2786
+#: templates/js/translated/stock.js:2742
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2794
+#: templates/js/translated/stock.js:2750
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2835
+#: templates/js/translated/stock.js:2791
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2836
+#: templates/js/translated/stock.js:2792
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2887
+#: templates/js/translated/stock.js:2843
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2938
+#: templates/js/translated/stock.js:2894
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2974
+#: templates/js/translated/stock.js:2930
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2975
+#: templates/js/translated/stock.js:2931
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2977
+#: templates/js/translated/stock.js:2933
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2978
+#: templates/js/translated/stock.js:2934
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2979
+#: templates/js/translated/stock.js:2935
msgid "The Stock Item is serialized and does not belong to another item"
msgstr ""
-#: templates/js/translated/stock.js:2992
+#: templates/js/translated/stock.js:2948
msgid "Select part to install"
msgstr ""
@@ -9429,60 +9488,68 @@ msgstr ""
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:368
+#: templates/js/translated/tables.js:50
+msgid "Export Table Data"
+msgstr ""
+
+#: templates/js/translated/tables.js:54
+msgid "Select File Format"
+msgstr ""
+
+#: templates/js/translated/tables.js:433
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:371
+#: templates/js/translated/tables.js:436
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:376
+#: templates/js/translated/tables.js:441
msgid "Showing all rows"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:382 templates/search_form.html:6
+#: templates/js/translated/tables.js:447 templates/search_form.html:6
#: templates/search_form.html:7
msgid "Search"
msgstr ""
-#: templates/js/translated/tables.js:385
+#: templates/js/translated/tables.js:450
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:388
+#: templates/js/translated/tables.js:453
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:391
+#: templates/js/translated/tables.js:456
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:394
+#: templates/js/translated/tables.js:459
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:397
+#: templates/js/translated/tables.js:462
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:400
+#: templates/js/translated/tables.js:465
msgid "All"
msgstr ""
@@ -9586,63 +9653,59 @@ msgstr ""
msgid "Email settings not configured"
msgstr ""
-#: templates/stock_table.html:14
-msgid "Export Stock Information"
-msgstr ""
-
-#: templates/stock_table.html:20
+#: templates/stock_table.html:17
msgid "Barcode Actions"
msgstr ""
-#: templates/stock_table.html:36
+#: templates/stock_table.html:33
msgid "Print test reports"
msgstr ""
-#: templates/stock_table.html:43
+#: templates/stock_table.html:40
msgid "Stock Options"
msgstr ""
-#: templates/stock_table.html:48
+#: templates/stock_table.html:45
msgid "Add to selected stock items"
msgstr ""
-#: templates/stock_table.html:49
+#: templates/stock_table.html:46
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:50
+#: templates/stock_table.html:47
msgid "Stocktake selected stock items"
msgstr ""
-#: templates/stock_table.html:51
+#: templates/stock_table.html:48
msgid "Move selected stock items"
msgstr ""
-#: templates/stock_table.html:52
+#: templates/stock_table.html:49
msgid "Merge selected stock items"
msgstr ""
-#: templates/stock_table.html:52
+#: templates/stock_table.html:49
msgid "Merge stock"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:50
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:52
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:52
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:55
msgid "Delete selected items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:55
msgid "Delete stock"
msgstr ""
diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po
index b9e6309a24..5a98361692 100644
--- a/InvenTree/locale/es/LC_MESSAGES/django.po
+++ b/InvenTree/locale/es/LC_MESSAGES/django.po
@@ -1,10 +1,10 @@
-#: templates/js/translated/order.js:2090
+#: templates/js/translated/order.js:2178
msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-03-01 13:34+0000\n"
-"PO-Revision-Date: 2022-03-01 14:09\n"
+"POT-Creation-Date: 2022-03-07 04:31+0000\n"
+"PO-Revision-Date: 2022-03-07 04:47\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
"Language: es_ES\n"
@@ -86,7 +86,7 @@ msgid "Duplicate serial: {sn}"
msgstr ""
#: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435
-#: stock/views.py:1101
+#: stock/views.py:983
msgid "Invalid quantity provided"
msgstr "Cantidad proporcionada no válida"
@@ -114,100 +114,100 @@ msgstr "Numeros de serie no encontrados"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "El número de números de serie únicos ({s}) debe coincidir con la cantidad ({q})"
-#: InvenTree/models.py:176
+#: InvenTree/models.py:185
msgid "Missing file"
msgstr "Archivo no encontrado"
-#: InvenTree/models.py:177
+#: InvenTree/models.py:186
msgid "Missing external link"
msgstr "Falta enlace externo"
-#: InvenTree/models.py:188 stock/models.py:2071
+#: InvenTree/models.py:197 stock/models.py:2123
#: templates/js/translated/attachment.js:119
msgid "Attachment"
msgstr "Archivo adjunto"
-#: InvenTree/models.py:189
+#: InvenTree/models.py:198
msgid "Select file to attach"
msgstr "Seleccionar archivo para adjuntar"
-#: InvenTree/models.py:195 company/models.py:131 company/models.py:348
+#: InvenTree/models.py:204 company/models.py:131 company/models.py:348
#: company/models.py:564 order/models.py:127 part/models.py:860
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1346
+#: templates/js/translated/company.js:829 templates/js/translated/part.js:1347
msgid "Link"
msgstr "Enlace"
-#: InvenTree/models.py:196 build/models.py:330 part/models.py:861
-#: stock/models.py:566
+#: InvenTree/models.py:205 build/models.py:332 part/models.py:861
+#: stock/models.py:618
msgid "Link to external URL"
msgstr "Enlace a URL externa"
-#: InvenTree/models.py:199 templates/js/translated/attachment.js:163
+#: InvenTree/models.py:208 templates/js/translated/attachment.js:163
msgid "Comment"
msgstr "Comentario"
-#: InvenTree/models.py:199
+#: InvenTree/models.py:208
msgid "File comment"
msgstr "Comentario del archivo"
-#: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1277
+#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1277
#: common/models.py:1278 common/models.py:1506 common/models.py:1507
-#: part/models.py:2303 part/models.py:2323
+#: part/models.py:2317 part/models.py:2337
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2817
+#: templates/js/translated/stock.js:2773
msgid "User"
msgstr "Usuario"
-#: InvenTree/models.py:209
+#: InvenTree/models.py:218
msgid "upload date"
msgstr "fecha de subida"
-#: InvenTree/models.py:232
+#: InvenTree/models.py:241
msgid "Filename must not be empty"
msgstr "El nombre del archivo no debe estar vacío"
-#: InvenTree/models.py:255
+#: InvenTree/models.py:264
msgid "Invalid attachment directory"
msgstr "Directorio de archivos adjuntos no válido"
-#: InvenTree/models.py:265
+#: InvenTree/models.py:274
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "El nombre del archivo contiene el carácter ilegal '{c}'"
-#: InvenTree/models.py:268
+#: InvenTree/models.py:277
msgid "Filename missing extension"
msgstr "Falta el nombre de extensión del archivo"
-#: InvenTree/models.py:275
+#: InvenTree/models.py:284
msgid "Attachment with this filename already exists"
msgstr "Ya existe un archivo adjunto con este nombre"
-#: InvenTree/models.py:282
+#: InvenTree/models.py:291
msgid "Error renaming file"
msgstr "Error al cambiar el nombre del archivo"
-#: InvenTree/models.py:317
+#: InvenTree/models.py:326
msgid "Invalid choice"
msgstr "Selección no válida"
-#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1492
+#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1492
#: company/models.py:415 label/models.py:112 part/models.py:804
-#: part/models.py:2487 plugin/models.py:40 report/models.py:181
+#: part/models.py:2501 plugin/models.py:40 report/models.py:181
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:48
#: templates/InvenTree/settings/plugin.html:125
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:319
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:567
-#: templates/js/translated/part.js:706 templates/js/translated/part.js:1653
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/company.js:641 templates/js/translated/part.js:568
+#: templates/js/translated/part.js:707 templates/js/translated/part.js:1654
+#: templates/js/translated/stock.js:2573
msgid "Name"
msgstr "Nombre"
-#: InvenTree/models.py:340 build/models.py:207
+#: InvenTree/models.py:349 build/models.py:209
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
@@ -219,28 +219,28 @@ msgstr "Nombre"
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:92
#: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:765
-#: templates/js/translated/build.js:1920 templates/js/translated/company.js:345
+#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763
+#: templates/js/translated/build.js:1973 templates/js/translated/company.js:345
#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:911
-#: templates/js/translated/order.js:1105 templates/js/translated/order.js:1366
-#: templates/js/translated/part.js:626 templates/js/translated/part.js:1021
-#: templates/js/translated/part.js:1106 templates/js/translated/part.js:1276
-#: templates/js/translated/part.js:1672 templates/js/translated/part.js:1741
-#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2446
-#: templates/js/translated/stock.js:2629 templates/js/translated/stock.js:2667
+#: templates/js/translated/company.js:840 templates/js/translated/order.js:971
+#: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454
+#: templates/js/translated/part.js:627 templates/js/translated/part.js:1022
+#: templates/js/translated/part.js:1107 templates/js/translated/part.js:1277
+#: templates/js/translated/part.js:1673 templates/js/translated/part.js:1742
+#: templates/js/translated/stock.js:1656 templates/js/translated/stock.js:2402
+#: templates/js/translated/stock.js:2585 templates/js/translated/stock.js:2623
msgid "Description"
msgstr "Descripción"
-#: InvenTree/models.py:341
+#: InvenTree/models.py:350
msgid "Description (optional)"
msgstr "Descripción (opcional)"
-#: InvenTree/models.py:349
+#: InvenTree/models.py:358
msgid "parent"
msgstr "padre"
-#: InvenTree/serializers.py:65 part/models.py:2805
+#: InvenTree/serializers.py:65 part/models.py:2820
msgid "Must be a valid number"
msgstr "Debe ser un numero valido"
@@ -294,87 +294,87 @@ msgstr ""
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:665
msgid "German"
msgstr "Alemán"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:666
msgid "Greek"
msgstr "Griego"
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:667
msgid "English"
msgstr "Inglés"
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:668
msgid "Spanish"
msgstr "Español"
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:669
msgid "Spanish (Mexican)"
msgstr "Español (México)"
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:670
msgid "French"
msgstr "Francés"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:671
msgid "Hebrew"
msgstr "Hebreo"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:672
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:673
msgid "Italian"
msgstr "Italiano"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:674
msgid "Japanese"
msgstr "Japonés"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:675
msgid "Korean"
msgstr "Coreano"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:676
msgid "Dutch"
msgstr "Holandés"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:677
msgid "Norwegian"
msgstr "Noruego"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:678
msgid "Polish"
msgstr "Polaco"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:679
msgid "Portugese"
msgstr "Portugués"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:680
msgid "Russian"
msgstr "Ruso"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:681
msgid "Swedish"
msgstr "Sueco"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:682
msgid "Thai"
msgstr "Tailandés"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:683
msgid "Turkish"
msgstr "Turco"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:684
msgid "Vietnamese"
msgstr "Vietnamita"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:685
msgid "Chinese"
msgstr "Chino"
@@ -421,7 +421,7 @@ msgid "Returned"
msgstr "Devuelto"
#: InvenTree/status_codes.py:143 order/models.py:997
-#: templates/js/translated/order.js:2097 templates/js/translated/order.js:2394
+#: templates/js/translated/order.js:2185 templates/js/translated/order.js:2482
msgid "Shipped"
msgstr "Enviado"
@@ -501,7 +501,7 @@ msgstr "Separar del elemento principal"
msgid "Split child item"
msgstr "Dividir elemento secundario"
-#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2204
+#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2160
msgid "Merged stock items"
msgstr "Artículos de stock combinados"
@@ -593,43 +593,43 @@ msgstr "Los campos de contraseña deben coincidir"
msgid "System Information"
msgstr "Información del sistema"
-#: barcodes/api.py:54 barcodes/api.py:152
+#: barcodes/api.py:55 barcodes/api.py:156
msgid "Must provide barcode_data parameter"
msgstr "Debe proporcionar el parámetro barcode_data"
-#: barcodes/api.py:128
+#: barcodes/api.py:132
msgid "No match found for barcode data"
msgstr "No se encontró ninguna coincidencia para los datos del código de barras"
-#: barcodes/api.py:130
+#: barcodes/api.py:134
msgid "Match found for barcode data"
msgstr "Coincidencia encontrada para datos de códigos de barras"
-#: barcodes/api.py:155
+#: barcodes/api.py:159
msgid "Must provide stockitem parameter"
msgstr "Debe proporcionar el parámetro stockitem"
-#: barcodes/api.py:162
+#: barcodes/api.py:166
msgid "No matching stock item found"
msgstr "No se ha encontrado ningún artículo de stock que coincida"
-#: barcodes/api.py:193
+#: barcodes/api.py:197
msgid "Barcode already matches Stock Item"
msgstr "El código de barras ya está asignado a un objeto de inventario"
-#: barcodes/api.py:197
+#: barcodes/api.py:201
msgid "Barcode already matches Stock Location"
msgstr "El código de barras ya coincide con una ubicación de stock"
-#: barcodes/api.py:201
+#: barcodes/api.py:205
msgid "Barcode already matches Part"
msgstr "El código de barras ya está asignado a un objeto de inventario"
-#: barcodes/api.py:207 barcodes/api.py:219
+#: barcodes/api.py:211 barcodes/api.py:223
msgid "Barcode hash already matches Stock Item"
msgstr "El código de barras ya coincide con un artículo de stock"
-#: barcodes/api.py:225
+#: barcodes/api.py:229
msgid "Barcode associated with Stock Item"
msgstr "Código de barras asignado al objeto de inventario"
@@ -641,18 +641,18 @@ msgstr "Confirmar cancelación"
msgid "Confirm build cancellation"
msgstr "Confirmar la cancelación de construcción"
-#: build/models.py:133
+#: build/models.py:135
msgid "Invalid choice for parent build"
msgstr "Opción no válida para la construcción padre"
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:139 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:676 templates/js/translated/stock.js:2422
+#: templates/js/translated/build.js:677 templates/js/translated/stock.js:2378
msgid "Build Order"
msgstr "Construir órden"
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:140 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:92
#: order/templates/order/so_sidebar.html:13
@@ -662,41 +662,41 @@ msgstr "Construir órden"
msgid "Build Orders"
msgstr "Construir órdenes"
-#: build/models.py:198
+#: build/models.py:200
msgid "Build Order Reference"
msgstr "Número de orden de construcción o armado"
-#: build/models.py:199 order/models.py:213 order/models.py:563
-#: order/models.py:843 part/models.py:2716
+#: build/models.py:201 order/models.py:213 order/models.py:563
+#: order/models.py:843 part/models.py:2731
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:772 templates/js/translated/build.js:1401
-#: templates/js/translated/order.js:1136 templates/js/translated/order.js:2261
+#: templates/js/translated/bom.js:770 templates/js/translated/build.js:1402
+#: templates/js/translated/order.js:1223 templates/js/translated/order.js:2349
msgid "Reference"
msgstr "Referencia"
-#: build/models.py:210
+#: build/models.py:212
msgid "Brief description of the build"
msgstr "Breve descripción de la construcción o armado"
-#: build/models.py:219 build/templates/build/build_base.html:169
+#: build/models.py:221 build/templates/build/build_base.html:169
#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr "Construcción o Armado Superior"
-#: build/models.py:220
+#: build/models.py:222
msgid "BuildOrder to which this build is allocated"
msgstr "Orden de Construcción o Armado a la que se asigna"
-#: build/models.py:225 build/templates/build/build_base.html:77
+#: build/models.py:227 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
#: order/models.py:912 order/models.py:986
#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359
-#: part/models.py:2249 part/models.py:2265 part/models.py:2284
-#: part/models.py:2301 part/models.py:2403 part/models.py:2525
-#: part/models.py:2615 part/models.py:2691 part/models.py:2998
-#: part/serializers.py:666 part/templates/part/part_app_base.html:8
+#: part/models.py:2263 part/models.py:2279 part/models.py:2298
+#: part/models.py:2315 part/models.py:2417 part/models.py:2539
+#: part/models.py:2629 part/models.py:2706 part/models.py:3013
+#: part/serializers.py:669 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: part/templates/part/upload_bom.html:52
@@ -707,231 +707,231 @@ 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:16
#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551
-#: templates/js/translated/bom.js:730 templates/js/translated/build.js:902
-#: templates/js/translated/build.js:1270 templates/js/translated/build.js:1655
-#: templates/js/translated/build.js:1925 templates/js/translated/company.js:492
+#: templates/js/translated/bom.js:728 templates/js/translated/build.js:903
+#: templates/js/translated/build.js:1271 templates/js/translated/build.js:1666
+#: templates/js/translated/build.js:1978 templates/js/translated/company.js:492
#: templates/js/translated/company.js:749 templates/js/translated/order.js:84
-#: templates/js/translated/order.js:651 templates/js/translated/order.js:1090
-#: templates/js/translated/order.js:1693 templates/js/translated/order.js:2050
-#: templates/js/translated/order.js:2245 templates/js/translated/part.js:1006
-#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1254
-#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1657
-#: templates/js/translated/stock.js:2892 templates/js/translated/stock.js:2991
+#: templates/js/translated/order.js:711 templates/js/translated/order.js:1177
+#: templates/js/translated/order.js:1781 templates/js/translated/order.js:2138
+#: templates/js/translated/order.js:2333 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1088 templates/js/translated/part.js:1255
+#: templates/js/translated/stock.js:518 templates/js/translated/stock.js:683
+#: templates/js/translated/stock.js:890 templates/js/translated/stock.js:1613
+#: templates/js/translated/stock.js:2848 templates/js/translated/stock.js:2947
msgid "Part"
msgstr "Parte"
-#: build/models.py:233
+#: build/models.py:235
msgid "Select part to build"
msgstr "Seleccionar parte a construir o armar"
-#: build/models.py:238
+#: build/models.py:240
msgid "Sales Order Reference"
msgstr "Referencia de orden de venta"
-#: build/models.py:242
+#: build/models.py:244
msgid "SalesOrder to which this build is allocated"
msgstr "Orden de Venta a la que se asigna"
-#: build/models.py:247 templates/js/translated/build.js:1643
-#: templates/js/translated/order.js:1681
+#: build/models.py:249 build/serializers.py:729
+#: templates/js/translated/build.js:1654 templates/js/translated/order.js:1769
msgid "Source Location"
msgstr "Ubicación de la fuente"
-#: build/models.py:251
+#: build/models.py:253
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr "Seleccione la ubicación de donde tomar stock para esta construcción o armado (deje en blanco para tomar desde cualquier ubicación)"
-#: build/models.py:256
+#: build/models.py:258
msgid "Destination Location"
msgstr "Ubicación de destino"
-#: build/models.py:260
+#: build/models.py:262
msgid "Select location where the completed items will be stored"
msgstr "Seleccione la ubicación donde se almacenarán los elementos completados"
-#: build/models.py:264
+#: build/models.py:266
msgid "Build Quantity"
msgstr "Cantidad a crear"
-#: build/models.py:267
+#: build/models.py:269
msgid "Number of stock items to build"
msgstr "Número de objetos existentes a construir"
-#: build/models.py:271
+#: build/models.py:273
msgid "Completed items"
msgstr "Elementos completados"
-#: build/models.py:273
+#: build/models.py:275
msgid "Number of stock items which have been completed"
msgstr "Número de productos en stock que se han completado"
-#: build/models.py:277 part/templates/part/part_base.html:234
+#: build/models.py:279 part/templates/part/part_base.html:234
msgid "Build Status"
msgstr "Estado de la construcción"
-#: build/models.py:281
+#: build/models.py:283
msgid "Build status code"
msgstr "Código de estado de construcción"
-#: build/models.py:285 build/serializers.py:218 order/serializers.py:272
-#: stock/models.py:570 templates/js/translated/order.js:513
+#: build/models.py:287 build/serializers.py:218 order/serializers.py:272
+#: stock/models.py:622 templates/js/translated/order.js:573
msgid "Batch Code"
msgstr "Numero de lote"
-#: build/models.py:289 build/serializers.py:219
+#: build/models.py:291 build/serializers.py:219
msgid "Batch code for this build output"
msgstr "Número de lote de este producto final"
-#: build/models.py:292 order/models.py:129 part/models.py:999
-#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1379
+#: build/models.py:294 order/models.py:129 part/models.py:999
+#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1467
msgid "Creation Date"
msgstr "Fecha de Creación"
-#: build/models.py:296 order/models.py:585
+#: build/models.py:298 order/models.py:585
msgid "Target completion date"
msgstr "Fecha límite de finalización"
-#: build/models.py:297
+#: build/models.py:299
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:300 order/models.py:255
-#: templates/js/translated/build.js:2002
+#: build/models.py:302 order/models.py:255
+#: templates/js/translated/build.js:2055
msgid "Completion Date"
msgstr "Fecha de finalización"
-#: build/models.py:306
+#: build/models.py:308
msgid "completed by"
msgstr "terminado por"
-#: build/models.py:314 templates/js/translated/build.js:1970
+#: build/models.py:316 templates/js/translated/build.js:2023
msgid "Issued by"
msgstr "Emitido por"
-#: build/models.py:315
+#: build/models.py:317
msgid "User who issued this build order"
msgstr "El usuario que emitió esta orden"
-#: build/models.py:323 build/templates/build/build_base.html:190
+#: build/models.py:325 build/templates/build/build_base.html:190
#: build/templates/build/detail.html:116 order/models.py:143
#: order/templates/order/order_base.html:170
#: order/templates/order/sales_order_base.html:182 part/models.py:1003
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1982 templates/js/translated/order.js:945
+#: templates/js/translated/build.js:2035 templates/js/translated/order.js:1005
msgid "Responsible"
msgstr "Responsable"
-#: build/models.py:324
+#: build/models.py:326
msgid "User responsible for this build order"
msgstr "Usuario responsable de esta orden"
-#: build/models.py:329 build/templates/build/detail.html:102
+#: build/models.py:331 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:564
+#: part/templates/part/part_base.html:354 stock/models.py:616
#: stock/templates/stock/item_base.html:352
msgid "External Link"
msgstr "Link externo"
-#: build/models.py:334 build/serializers.py:381
+#: build/models.py:336 build/serializers.py:381
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
#: order/models.py:147 order/models.py:845 order/models.py:1107
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/models.py:988
-#: part/templates/part/detail.html:146 part/templates/part/part_sidebar.html:57
+#: part/templates/part/detail.html:141 part/templates/part/part_sidebar.html:57
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:137 stock/forms.py:171 stock/models.py:636
-#: stock/models.py:1971 stock/models.py:2077 stock/serializers.py:332
+#: stock/forms.py:137 stock/forms.py:171 stock/models.py:688
+#: stock/models.py:2023 stock/models.py:2129 stock/serializers.py:332
#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:936
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1257
-#: templates/js/translated/order.js:1562 templates/js/translated/order.js:2419
-#: templates/js/translated/stock.js:1344 templates/js/translated/stock.js:1935
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934
+#: templates/js/translated/company.js:845 templates/js/translated/order.js:1344
+#: templates/js/translated/order.js:1650 templates/js/translated/order.js:2507
+#: templates/js/translated/stock.js:1300 templates/js/translated/stock.js:1891
msgid "Notes"
msgstr "Notas"
-#: build/models.py:335
+#: build/models.py:337
msgid "Extra build notes"
msgstr "Notas adicionales de construcción"
-#: build/models.py:748
+#: build/models.py:750
msgid "No build output specified"
msgstr "No se ha especificado salida de construcción"
-#: build/models.py:751
+#: build/models.py:753
msgid "Build output is already completed"
msgstr "La construcción de la salida ya está completa"
-#: build/models.py:754
+#: build/models.py:756
msgid "Build output does not match Build Order"
msgstr "La salida de la construcción no coincide con el orden de construcción"
-#: build/models.py:1060
+#: build/models.py:1162
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "Item de construcción o armado debe especificar un resultado o salida, ya que la parte maestra está marcada como rastreable"
-#: build/models.py:1069
+#: build/models.py:1171
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr "Cantidad asignada ({q}) no debe exceder la cantidad disponible de stock ({a})"
-#: build/models.py:1079
+#: build/models.py:1181
msgid "Stock item is over-allocated"
msgstr "Artículo de stock sobreasignado"
-#: build/models.py:1085 order/models.py:1225
+#: build/models.py:1187 order/models.py:1225
msgid "Allocation quantity must be greater than zero"
msgstr "Cantidad asignada debe ser mayor que cero"
-#: build/models.py:1091
+#: build/models.py:1193
msgid "Quantity must be 1 for serialized stock"
msgstr "La cantidad debe ser 1 para el stock serializado"
-#: build/models.py:1148
+#: build/models.py:1250
msgid "Selected stock item not found in BOM"
msgstr "Artículo de stock seleccionado no encontrado en BOM"
-#: build/models.py:1217 stock/templates/stock/item_base.html:324
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898
+#: build/models.py:1319 stock/templates/stock/item_base.html:324
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1951
#: templates/navbar.html:35
msgid "Build"
msgstr "Construcción o Armado"
-#: build/models.py:1218
+#: build/models.py:1320
msgid "Build to allocate parts"
msgstr "Armar para asignar partes"
-#: build/models.py:1234 build/serializers.py:576 order/serializers.py:783
+#: build/models.py:1336 build/serializers.py:576 order/serializers.py:783
#: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635
#: stock/serializers.py:753 stock/templates/stock/item_base.html:9
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:346
-#: templates/js/translated/build.js:687 templates/js/translated/build.js:692
-#: templates/js/translated/build.js:1657 templates/js/translated/build.js:2050
-#: templates/js/translated/order.js:85 templates/js/translated/order.js:1694
-#: templates/js/translated/order.js:1949 templates/js/translated/order.js:1954
-#: templates/js/translated/order.js:2057 templates/js/translated/order.js:2147
-#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728
-#: templates/js/translated/stock.js:2753
+#: templates/js/translated/build.js:688 templates/js/translated/build.js:693
+#: templates/js/translated/build.js:1668 templates/js/translated/build.js:2103
+#: templates/js/translated/order.js:85 templates/js/translated/order.js:1782
+#: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:2235
+#: templates/js/translated/stock.js:519 templates/js/translated/stock.js:684
+#: templates/js/translated/stock.js:2709
msgid "Stock Item"
msgstr "Artículo de stock"
-#: build/models.py:1235
+#: build/models.py:1337
msgid "Source stock item"
msgstr "Producto original de stock"
-#: build/models.py:1247 build/serializers.py:188
+#: build/models.py:1349 build/serializers.py:188
#: build/templates/build/build_base.html:82
#: build/templates/build/detail.html:35 common/models.py:1317
#: company/forms.py:42 company/templates/company/supplier_part.html:251
#: order/models.py:836 order/models.py:1265 order/serializers.py:903
#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144
-#: part/forms.py:160 part/forms.py:176 part/models.py:2707
-#: part/templates/part/detail.html:1008 part/templates/part/detail.html:1094
+#: part/forms.py:160 part/forms.py:176 part/models.py:2722
+#: part/templates/part/detail.html:994 part/templates/part/detail.html:1080
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_build_order_base.html:114
@@ -943,32 +943,32 @@ msgstr "Producto original de stock"
#: stock/templates/stock/item_base.html:176
#: stock/templates/stock/item_base.html:241
#: stock/templates/stock/item_base.html:249
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:780
-#: templates/js/translated/build.js:375 templates/js/translated/build.js:523
-#: templates/js/translated/build.js:714 templates/js/translated/build.js:911
-#: templates/js/translated/build.js:921 templates/js/translated/build.js:1297
-#: templates/js/translated/build.js:1658
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778
+#: templates/js/translated/build.js:376 templates/js/translated/build.js:524
+#: templates/js/translated/build.js:715 templates/js/translated/build.js:912
+#: templates/js/translated/build.js:922 templates/js/translated/build.js:1298
+#: templates/js/translated/build.js:1669
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:101 templates/js/translated/order.js:1142
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:1976
-#: templates/js/translated/order.js:2064 templates/js/translated/order.js:2153
-#: templates/js/translated/order.js:2267 templates/js/translated/part.js:906
-#: templates/js/translated/part.js:1884 templates/js/translated/part.js:2007
-#: templates/js/translated/part.js:2085 templates/js/translated/stock.js:391
-#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758
-#: templates/js/translated/stock.js:2802 templates/js/translated/stock.js:2904
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:1229
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:2064
+#: templates/js/translated/order.js:2152 templates/js/translated/order.js:2241
+#: templates/js/translated/order.js:2355 templates/js/translated/part.js:907
+#: templates/js/translated/part.js:1885 templates/js/translated/part.js:2008
+#: templates/js/translated/part.js:2086 templates/js/translated/stock.js:390
+#: templates/js/translated/stock.js:544 templates/js/translated/stock.js:714
+#: templates/js/translated/stock.js:2758 templates/js/translated/stock.js:2860
msgid "Quantity"
msgstr "Cantidad"
-#: build/models.py:1248
+#: build/models.py:1350
msgid "Stock quantity to allocate to build"
msgstr "Cantidad de stock a asignar para construir"
-#: build/models.py:1256
+#: build/models.py:1358
msgid "Install into"
msgstr "Instalar en"
-#: build/models.py:1257
+#: build/models.py:1359
msgid "Destination stock item"
msgstr "Artículo de stock de destino"
@@ -997,8 +997,8 @@ msgid "Enter quantity for build output"
msgstr "Ingrese la cantidad para la producción de la construcción"
#: build/serializers.py:201 build/serializers.py:596 order/models.py:280
-#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:826
-#: stock/models.py:404 stock/models.py:1180 stock/serializers.py:305
+#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:836
+#: stock/models.py:456 stock/models.py:1232 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr "La cantidad debe ser mayor que cero"
@@ -1012,8 +1012,8 @@ msgstr ""
#: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907
#: stock/forms.py:78 stock/serializers.py:314
-#: templates/js/translated/order.js:524 templates/js/translated/stock.js:238
-#: templates/js/translated/stock.js:392
+#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237
+#: templates/js/translated/stock.js:391
msgid "Serial Numbers"
msgstr "Números de serie"
@@ -1029,7 +1029,7 @@ msgstr "Autoasignar Números de Serie"
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Asignar automáticamente los elementos requeridos con números de serie coincidentes"
-#: build/serializers.py:275 stock/api.py:549
+#: build/serializers.py:275 stock/api.py:551
msgid "The following serial numbers already exist"
msgstr "Los siguientes números de serie ya existen"
@@ -1041,13 +1041,13 @@ msgstr "Debe proporcionarse una lista de salidas de construcción"
#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788
#: stock/serializers.py:1029 stock/templates/stock/item_base.html:292
#: templates/js/translated/barcode.js:384
-#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:699
-#: templates/js/translated/build.js:1309 templates/js/translated/order.js:551
-#: templates/js/translated/order.js:1961 templates/js/translated/order.js:2072
-#: templates/js/translated/order.js:2080 templates/js/translated/order.js:2161
-#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564
-#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936
-#: templates/js/translated/stock.js:1807 templates/js/translated/stock.js:2694
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700
+#: templates/js/translated/build.js:1310 templates/js/translated/order.js:611
+#: templates/js/translated/order.js:2049 templates/js/translated/order.js:2160
+#: templates/js/translated/order.js:2168 templates/js/translated/order.js:2249
+#: templates/js/translated/part.js:179 templates/js/translated/stock.js:520
+#: templates/js/translated/stock.js:685 templates/js/translated/stock.js:892
+#: templates/js/translated/stock.js:1763 templates/js/translated/stock.js:2650
msgid "Location"
msgstr "Unicación"
@@ -1058,10 +1058,10 @@ msgstr "Ubicación para las salidas de construcción completadas"
#: build/serializers.py:377 build/templates/build/build_base.html:142
#: build/templates/build/detail.html:63 order/models.py:579
#: order/serializers.py:290 stock/templates/stock/item_base.html:182
-#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1954
-#: templates/js/translated/order.js:656 templates/js/translated/order.js:915
-#: templates/js/translated/order.js:1371 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2771 templates/js/translated/stock.js:2920
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2007
+#: templates/js/translated/order.js:716 templates/js/translated/order.js:975
+#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2727 templates/js/translated/stock.js:2876
msgid "Status"
msgstr "Estado"
@@ -1073,7 +1073,7 @@ msgstr "Aceptar no asignado"
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr "Aceptar que los artículos de stock no se han asignado completamente a este pedido de construcción"
-#: build/serializers.py:445 templates/js/translated/build.js:150
+#: build/serializers.py:445 templates/js/translated/build.js:151
msgid "Required stock has not been fully allocated"
msgstr "El stock requerido no ha sido completamente asignado"
@@ -1085,7 +1085,7 @@ msgstr "Aceptar incompleto"
msgid "Accept that the required number of build outputs have not been completed"
msgstr "Aceptar que el número requerido de salidas de construcción no se han completado"
-#: build/serializers.py:461 templates/js/translated/build.js:154
+#: build/serializers.py:461 templates/js/translated/build.js:155
msgid "Required build quantity has not been completed"
msgstr "La cantidad de construcción requerida aún no se ha completado"
@@ -1097,8 +1097,8 @@ msgstr "El orden de construcción tiene salidas incompletas"
msgid "No build outputs have been created for this build order"
msgstr "No se han creado salidas para esta orden de construcción"
-#: build/serializers.py:501 build/serializers.py:550 part/models.py:2831
-#: part/models.py:2990
+#: build/serializers.py:501 build/serializers.py:550 part/models.py:2846
+#: part/models.py:3005
msgid "BOM Item"
msgstr "Item de Lista de Materiales"
@@ -1135,6 +1135,26 @@ msgstr "La salida de construcción no se puede especificar para la asignación d
msgid "Allocation items must be provided"
msgstr "Debe proporcionarse la adjudicación de artículos"
+#: build/serializers.py:730
+msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
+msgstr ""
+
+#: build/serializers.py:735
+msgid "Interchangeable Stock"
+msgstr ""
+
+#: build/serializers.py:736
+msgid "Stock items in multiple locations can be used interchangeably"
+msgstr ""
+
+#: build/serializers.py:741
+msgid "Substitute Stock"
+msgstr ""
+
+#: build/serializers.py:742
+msgid "Allow allocation of substitute parts"
+msgstr ""
+
#: build/tasks.py:98
msgid "Stock required for build order"
msgstr "Stock requerido para la orden de construcción"
@@ -1206,9 +1226,9 @@ msgstr "Stock no ha sido asignado completamente a este pedido de construcción"
#: order/templates/order/order_base.html:156
#: order/templates/order/sales_order_base.html:163
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1994 templates/js/translated/order.js:932
-#: templates/js/translated/order.js:1204 templates/js/translated/order.js:1387
-#: templates/js/translated/order.js:2330 templates/js/translated/part.js:910
+#: templates/js/translated/build.js:2047 templates/js/translated/order.js:992
+#: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475
+#: templates/js/translated/order.js:2418 templates/js/translated/part.js:911
msgid "Target Date"
msgstr "Fecha objetivo"
@@ -1230,7 +1250,7 @@ msgstr "Vencido"
#: build/templates/build/build_base.html:163
#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
#: order/templates/order/sales_order_base.html:170
-#: templates/js/translated/build.js:1940
+#: templates/js/translated/build.js:1993
#: templates/js/translated/table_filters.js:365
msgid "Completed"
msgstr "Completados"
@@ -1242,7 +1262,7 @@ msgstr "Completados"
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:286
-#: templates/js/translated/order.js:1326 templates/js/translated/stock.js:2436
+#: templates/js/translated/order.js:1414 templates/js/translated/stock.js:2392
msgid "Sales Order"
msgstr "Orden de Venta"
@@ -1277,7 +1297,7 @@ msgid "Stock can be taken from any available location."
msgstr "Las existencias se pueden tomar desde cualquier ubicación disponible."
#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133
-#: templates/js/translated/order.js:657 templates/js/translated/order.js:1246
+#: templates/js/translated/order.js:717 templates/js/translated/order.js:1333
msgid "Destination"
msgstr "Destinación"
@@ -1285,13 +1305,13 @@ msgstr "Destinación"
msgid "Destination location not specified"
msgstr "Se requiere ubicación de destino"
-#: build/templates/build/detail.html:74 templates/js/translated/build.js:929
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:930
msgid "Allocated Parts"
msgstr "Partes asignadas"
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:310
-#: templates/js/translated/stock.js:1796 templates/js/translated/stock.js:2927
+#: templates/js/translated/stock.js:1752 templates/js/translated/stock.js:2883
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:238
msgid "Batch"
@@ -1300,7 +1320,7 @@ msgstr "Lote"
#: build/templates/build/detail.html:127
#: order/templates/order/order_base.html:143
#: order/templates/order/sales_order_base.html:157
-#: templates/js/translated/build.js:1962
+#: templates/js/translated/build.js:2015
msgid "Created"
msgstr "Creado"
@@ -1320,7 +1340,7 @@ msgstr "Órdenes de Trabajo herederas"
msgid "Allocate Stock to Build"
msgstr "Asignar Stock a Trabajo"
-#: build/templates/build/detail.html:177 templates/js/translated/build.js:1484
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1485
msgid "Unallocate stock"
msgstr "Desasignar stock"
@@ -1329,111 +1349,119 @@ msgid "Unallocate Stock"
msgstr "Desasignar stock"
#: build/templates/build/detail.html:180
-msgid "Allocate stock to build"
-msgstr "Asignar Stock a Trabajo"
+msgid "Automatically allocate stock to build"
+msgstr ""
-#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
+#: build/templates/build/detail.html:181
+msgid "Auto Allocate"
+msgstr ""
+
+#: build/templates/build/detail.html:183
+msgid "Manually allocate stock to build"
+msgstr ""
+
+#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8
msgid "Allocate Stock"
msgstr "Asignar stock"
-#: build/templates/build/detail.html:184
+#: build/templates/build/detail.html:187
msgid "Order required parts"
msgstr "Pedir partes necesarias"
-#: build/templates/build/detail.html:185
+#: build/templates/build/detail.html:188
#: company/templates/company/detail.html:38
#: company/templates/company/detail.html:85 order/views.py:463
-#: part/templates/part/category.html:177
+#: part/templates/part/category.html:174
msgid "Order Parts"
msgstr "Partes del pedido"
-#: build/templates/build/detail.html:197
+#: build/templates/build/detail.html:200
msgid "Untracked stock has been fully allocated for this Build Order"
msgstr "Stock no ha sido asignado completamente a esta Orden de Trabajo"
-#: build/templates/build/detail.html:201
+#: build/templates/build/detail.html:204
msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr "El stock sin rastrear no ha sido asignado completamente para esta Orden de Trabajo"
-#: build/templates/build/detail.html:208
+#: build/templates/build/detail.html:211
msgid "Allocate selected items"
msgstr "Asignar partes seleccionadas"
-#: build/templates/build/detail.html:218
+#: build/templates/build/detail.html:221
msgid "This Build Order does not have any associated untracked BOM items"
msgstr "Esta Orden de Trabajo no tiene ningún objeto BOM sin seguimiento asociados"
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:230
msgid "Incomplete Build Outputs"
msgstr "Salidas de Trabajo incompletas"
-#: build/templates/build/detail.html:231
+#: build/templates/build/detail.html:234
msgid "Create new build output"
msgstr "Crear nueva salida de trabajo"
-#: build/templates/build/detail.html:232
+#: build/templates/build/detail.html:235
msgid "New Build Output"
msgstr "Nueva Salida de Trabajo"
-#: build/templates/build/detail.html:246
+#: build/templates/build/detail.html:249
msgid "Output Actions"
msgstr "Acciones de salida"
-#: build/templates/build/detail.html:250
+#: build/templates/build/detail.html:253
msgid "Complete selected build outputs"
msgstr "Completa las salidas seleccionadas"
-#: build/templates/build/detail.html:251
+#: build/templates/build/detail.html:254
msgid "Complete outputs"
msgstr "Completar salidas"
-#: build/templates/build/detail.html:253
+#: build/templates/build/detail.html:256
msgid "Delete selected build outputs"
msgstr "Eliminar salidas seleccionadas"
-#: build/templates/build/detail.html:254
+#: build/templates/build/detail.html:257
msgid "Delete outputs"
msgstr "Eliminar salidas"
-#: build/templates/build/detail.html:270
+#: build/templates/build/detail.html:273
msgid "Completed Build Outputs"
msgstr "Salidas de Trabajo Completadas"
-#: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19
+#: build/templates/build/detail.html:285 build/templates/build/sidebar.html:19
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:107
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:222
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217
#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:105
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr "Adjuntos"
-#: build/templates/build/detail.html:298
+#: build/templates/build/detail.html:301
msgid "Build Notes"
msgstr "Notas del Trabajo"
-#: build/templates/build/detail.html:302 build/templates/build/detail.html:478
-#: company/templates/company/detail.html:188
-#: company/templates/company/detail.html:215
+#: build/templates/build/detail.html:305 build/templates/build/detail.html:481
+#: company/templates/company/detail.html:190
+#: company/templates/company/detail.html:217
#: order/templates/order/purchase_order_detail.html:80
#: order/templates/order/purchase_order_detail.html:108
#: order/templates/order/sales_order_detail.html:127
#: order/templates/order/sales_order_detail.html:186
-#: part/templates/part/detail.html:150 stock/templates/stock/item.html:125
+#: part/templates/part/detail.html:145 stock/templates/stock/item.html:125
#: stock/templates/stock/item.html:223
msgid "Edit Notes"
msgstr "Editar notas"
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:519
msgid "Allocation Complete"
msgstr "Asignación completa"
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:520
msgid "All untracked stock items have been allocated"
msgstr "Todos los artículos de stock no rastreados han sido asignados"
-#: build/templates/build/index.html:18 part/templates/part/detail.html:329
+#: build/templates/build/index.html:18 part/templates/part/detail.html:322
msgid "New Build Order"
msgstr "Nueva Orden de Trabajo"
@@ -1658,7 +1686,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:732 part/models.py:2527 report/models.py:187
+#: common/models.py:732 part/models.py:2541 report/models.py:187
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:417
msgid "Template"
@@ -1668,7 +1696,7 @@ msgstr "Plantilla"
msgid "Parts are templates by default"
msgstr "Las piezas son plantillas por defecto"
-#: common/models.py:739 part/models.py:951 templates/js/translated/bom.js:1300
+#: common/models.py:739 part/models.py:951 templates/js/translated/bom.js:1305
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:429
msgid "Assembly"
@@ -2243,7 +2271,7 @@ msgstr "Cantidad de salto de precio"
#: common/models.py:1325 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:937 templates/js/translated/part.js:1889
+#: templates/js/translated/part.js:938 templates/js/translated/part.js:1890
msgid "Price"
msgstr "Precio"
@@ -2337,14 +2365,14 @@ msgstr "¿El trabajo en este mensaje ha terminado?"
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
-#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:210
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208
#: templates/patterns/wizard/upload.html:35
msgid "Upload File"
msgstr "Subir Archivo"
#: common/views.py:94 order/views.py:244
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:211
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:209
#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr "Coincidir Campos"
@@ -2472,7 +2500,7 @@ msgstr "Moneda"
msgid "Default currency used for this company"
msgstr "Moneda predeterminada utilizada para esta empresa"
-#: company/models.py:320 company/models.py:535 stock/models.py:508
+#: company/models.py:320 company/models.py:535 stock/models.py:560
#: stock/templates/stock/item_base.html:137 templates/js/translated/bom.js:541
msgid "Base Part"
msgstr "Parte base"
@@ -2499,8 +2527,8 @@ msgstr "Seleccionar fabricante"
#: company/models.py:342 company/templates/company/manufacturer_part.html:96
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1124
-#: templates/js/translated/part.js:245 templates/js/translated/part.js:895
+#: templates/js/translated/company.js:818 templates/js/translated/order.js:1211
+#: templates/js/translated/part.js:245 templates/js/translated/part.js:896
msgid "MPN"
msgstr "MPN"
@@ -2529,8 +2557,8 @@ msgstr "Nombre del parámetro"
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2064 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1331
+#: stock/models.py:2116 templates/js/translated/company.js:647
+#: templates/js/translated/part.js:716 templates/js/translated/stock.js:1287
msgid "Value"
msgstr "Valor"
@@ -2538,10 +2566,10 @@ msgstr "Valor"
msgid "Parameter value"
msgstr "Valor del parámetro"
-#: company/models.py:429 part/models.py:945 part/models.py:2495
+#: company/models.py:429 part/models.py:945 part/models.py:2509
#: part/templates/part/part_base.html:288
#: templates/InvenTree/settings/settings.html:324
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:721
+#: templates/js/translated/company.js:653 templates/js/translated/part.js:722
msgid "Units"
msgstr "Unidades"
@@ -2559,8 +2587,8 @@ msgstr "La parte vinculada del fabricante debe hacer referencia a la misma pieza
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237
#: part/bom.py:265 stock/templates/stock/item_base.html:376
#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:898
-#: templates/js/translated/part.js:215 templates/js/translated/part.js:863
+#: templates/js/translated/company.js:774 templates/js/translated/order.js:958
+#: templates/js/translated/part.js:215 templates/js/translated/part.js:864
#: templates/js/translated/table_filters.js:388
msgid "Supplier"
msgstr "Proveedor"
@@ -2570,8 +2598,8 @@ msgid "Select supplier"
msgstr "Seleccionar proveedor"
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1111
-#: templates/js/translated/part.js:226 templates/js/translated/part.js:881
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198
+#: templates/js/translated/part.js:226 templates/js/translated/part.js:882
msgid "SKU"
msgstr "SKU"
@@ -2592,7 +2620,7 @@ msgid "Supplier part description"
msgstr "Descripción de la parte del proveedor"
#: company/models.py:576 company/templates/company/supplier_part.html:119
-#: part/models.py:2719 part/templates/part/upload_bom.html:59
+#: part/models.py:2734 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409
msgid "Note"
@@ -2607,8 +2635,8 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr "Cargo mínimo (p. ej., cuota de almacenamiento)"
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:532 stock/templates/stock/item_base.html:317
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1931
+#: stock/models.py:584 stock/templates/stock/item_base.html:317
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1887
msgid "Packaging"
msgstr "Paquetes"
@@ -2676,11 +2704,11 @@ msgid "Download image from URL"
msgstr "Descargar desde URL"
#: company/templates/company/company_base.html:83 order/models.py:574
-#: order/templates/order/sales_order_base.html:115 stock/models.py:551
-#: stock/models.py:552 stock/serializers.py:683
+#: order/templates/order/sales_order_base.html:115 stock/models.py:603
+#: stock/models.py:604 stock/serializers.py:683
#: stock/templates/stock/item_base.html:269
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1348
-#: templates/js/translated/stock.js:2735
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1436
+#: templates/js/translated/stock.js:2691
#: templates/js/translated/table_filters.js:392
msgid "Customer"
msgstr "Cliente"
@@ -2711,7 +2739,7 @@ msgstr "Crear nueva parte del proveedor"
#: company/templates/company/detail.html:20
#: company/templates/company/manufacturer_part.html:118
-#: part/templates/part/detail.html:367
+#: part/templates/part/detail.html:360
msgid "New Supplier Part"
msgstr "Nueva Parte de Proveedor"
@@ -2719,14 +2747,14 @@ msgstr "Nueva Parte de Proveedor"
#: company/templates/company/detail.html:79
#: company/templates/company/manufacturer_part.html:127
#: company/templates/company/manufacturer_part.html:156
-#: part/templates/part/category.html:171 part/templates/part/detail.html:376
-#: part/templates/part/detail.html:405
+#: part/templates/part/category.html:168 part/templates/part/detail.html:369
+#: part/templates/part/detail.html:398
msgid "Options"
msgstr "Opciones"
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177
+#: part/templates/part/category.html:174
msgid "Order parts"
msgstr "Piezas de pedido"
@@ -2748,7 +2776,7 @@ msgstr "Partes del fabricante"
msgid "Create new manufacturer part"
msgstr "Crear nueva pieza de fabricante"
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:395
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:388
msgid "New Manufacturer Part"
msgstr "Nueva pieza de fabricante"
@@ -2762,7 +2790,7 @@ msgstr "Stock del Proveedor"
#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:40
+#: part/templates/part/detail.html:80 part/templates/part/part_sidebar.html:40
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
@@ -2784,7 +2812,7 @@ msgstr "Nueva orden de compra"
#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:44
+#: part/templates/part/detail.html:103 part/templates/part/part_sidebar.html:44
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
@@ -2802,23 +2830,23 @@ msgid "New Sales Order"
msgstr "Nueva orden de venta"
#: company/templates/company/detail.html:168
-#: templates/js/translated/build.js:1281
+#: templates/js/translated/build.js:1282
msgid "Assigned Stock"
msgstr "Stock asignado"
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:186
msgid "Company Notes"
msgstr "Notas de la empresa"
-#: company/templates/company/detail.html:384
+#: company/templates/company/detail.html:380
#: company/templates/company/manufacturer_part.html:215
-#: part/templates/part/detail.html:449
+#: part/templates/part/detail.html:442
msgid "Delete Supplier Parts?"
msgstr "¿Eliminar piezas de proveedor?"
-#: company/templates/company/detail.html:385
+#: company/templates/company/detail.html:381
#: company/templates/company/manufacturer_part.html:216
-#: part/templates/part/detail.html:450
+#: part/templates/part/detail.html:443
msgid "All selected supplier parts will be deleted"
msgstr "Se eliminarán todas las partes del proveedor seleccionadas"
@@ -2835,7 +2863,7 @@ msgstr "Fabricantes"
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:34
#: company/templates/company/supplier_part.html:159
-#: part/templates/part/detail.html:88 part/templates/part/part_base.html:76
+#: part/templates/part/detail.html:83 part/templates/part/part_base.html:76
msgid "Order part"
msgstr "Pedir ítem"
@@ -2862,14 +2890,14 @@ msgid "Suppliers"
msgstr "Proveedores"
#: company/templates/company/manufacturer_part.html:129
-#: part/templates/part/detail.html:378
+#: part/templates/part/detail.html:371
msgid "Delete supplier parts"
msgstr "Eliminar partes del proveedor"
#: company/templates/company/manufacturer_part.html:129
#: company/templates/company/manufacturer_part.html:158
#: company/templates/company/manufacturer_part.html:254
-#: part/templates/part/detail.html:378 part/templates/part/detail.html:407
+#: part/templates/part/detail.html:371 part/templates/part/detail.html:400
#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31
#: users/models.py:217
msgid "Delete"
@@ -2878,12 +2906,12 @@ msgstr "Eliminar"
#: company/templates/company/manufacturer_part.html:143
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:17
-#: part/templates/part/detail.html:196 part/templates/part/part_sidebar.html:9
+#: part/templates/part/detail.html:191 part/templates/part/part_sidebar.html:9
msgid "Parameters"
msgstr "Parámetros"
#: company/templates/company/manufacturer_part.html:147
-#: part/templates/part/detail.html:201
+#: part/templates/part/detail.html:196
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:66
msgid "New Parameter"
@@ -2894,7 +2922,7 @@ msgid "Delete parameters"
msgstr "Eliminar parámetro"
#: company/templates/company/manufacturer_part.html:191
-#: part/templates/part/detail.html:908
+#: part/templates/part/detail.html:894
msgid "Add Parameter"
msgstr "Añadir parámetro"
@@ -2923,9 +2951,9 @@ msgid "Assigned Stock Items"
msgstr "Elementos de Stock Asignados"
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:516
+#: company/templates/company/supplier_part.html:24 stock/models.py:568
#: stock/templates/stock/item_base.html:381
-#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1888
+#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1844
msgid "Supplier Part"
msgstr "Ítems de Proveedor"
@@ -2951,7 +2979,7 @@ msgstr "Crear nuevo artículo de stock"
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:166
-#: templates/js/translated/stock.js:368
+#: templates/js/translated/stock.js:367
msgid "New Stock Item"
msgstr "Nuevo artículo de stock"
@@ -2961,7 +2989,7 @@ msgid "Supplier Part Orders"
msgstr "Pedidos de piezas al proveedor"
#: company/templates/company/supplier_part.html:160
-#: part/templates/part/detail.html:89
+#: part/templates/part/detail.html:84
msgid "Order Part"
msgstr "Pedir ítem"
@@ -2972,7 +3000,7 @@ msgstr "Información de Precios"
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1319
+#: part/templates/part/prices.html:271 part/views.py:1254
msgid "Add Price Break"
msgstr "Agregar descuento de precio"
@@ -2980,11 +3008,11 @@ msgstr "Agregar descuento de precio"
msgid "No price break information found"
msgstr "No se ha encontrado información de descuento de precios"
-#: company/templates/company/supplier_part.html:224 part/views.py:1381
+#: company/templates/company/supplier_part.html:224 part/views.py:1316
msgid "Delete Price Break"
msgstr "Eliminar precio de descuento"
-#: company/templates/company/supplier_part.html:238 part/views.py:1367
+#: company/templates/company/supplier_part.html:238 part/views.py:1302
msgid "Edit Price Break"
msgstr "Editar precio de descuento"
@@ -3002,10 +3030,10 @@ msgstr "Eliminar precio de descuento"
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:150
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/bom.js:553 templates/js/translated/part.js:495
-#: templates/js/translated/part.js:630 templates/js/translated/part.js:1147
-#: templates/js/translated/part.js:1308 templates/js/translated/stock.js:935
-#: templates/js/translated/stock.js:1711 templates/navbar.html:28
+#: templates/js/translated/bom.js:553 templates/js/translated/part.js:496
+#: templates/js/translated/part.js:631 templates/js/translated/part.js:1148
+#: templates/js/translated/part.js:1309 templates/js/translated/stock.js:891
+#: templates/js/translated/stock.js:1667 templates/navbar.html:28
msgid "Stock"
msgstr "Inventario"
@@ -3028,7 +3056,7 @@ msgstr "Precios"
#: stock/templates/stock/location.html:150
#: stock/templates/stock/location.html:162
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2641
+#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2597
#: templates/stats.html:105 templates/stats.html:114 users/models.py:43
msgid "Stock Items"
msgstr "Elementos de stock"
@@ -3058,20 +3086,20 @@ msgstr "Empresas"
msgid "New Company"
msgstr "Nueva Compañía"
-#: company/views.py:129 part/views.py:591
+#: company/views.py:129 part/views.py:589
msgid "Download Image"
msgstr "Descargar imagen"
-#: company/views.py:158 part/views.py:623
+#: company/views.py:158 part/views.py:621
msgid "Image size exceeds maximum allowable size for download"
msgstr "El tamaño de la imagen excede el tamaño máximo permitido para descargar"
-#: company/views.py:165 part/views.py:630
+#: company/views.py:165 part/views.py:628
#, python-brace-format
msgid "Invalid response: {code}"
msgstr "Respuesta no válida: {code}"
-#: company/views.py:174 part/views.py:639
+#: company/views.py:174 part/views.py:637
msgid "Supplied URL is not a valid image file"
msgstr "La URL proporcionada no es un archivo de imagen válido"
@@ -3190,7 +3218,7 @@ msgid "Company from which the items are being ordered"
msgstr "Compañía de la que se están encargando los artículos"
#: order/models.py:231 order/templates/order/order_base.html:118
-#: templates/js/translated/order.js:907
+#: templates/js/translated/order.js:967
msgid "Supplier Reference"
msgstr "Referencia del proveedor"
@@ -3247,7 +3275,7 @@ msgid "Target date for order completion. Order will be overdue after this date."
msgstr "Fecha límite para la finalización del pedido. El pedido se retrasará después de esta fecha."
#: order/models.py:589 order/models.py:1084
-#: templates/js/translated/order.js:1395 templates/js/translated/order.js:1546
+#: templates/js/translated/order.js:1483 templates/js/translated/order.js:1634
msgid "Shipment Date"
msgstr "Fecha de envío"
@@ -3292,7 +3320,7 @@ msgid "Supplier part must match supplier"
msgstr "La pieza del proveedor debe coincidir con el proveedor"
#: order/models.py:891 order/models.py:982 order/models.py:1078
-#: templates/js/translated/order.js:1937 templates/js/translated/stock.js:2403
+#: templates/js/translated/order.js:2025 templates/js/translated/stock.js:2359
msgid "Order"
msgstr "Orden"
@@ -3300,8 +3328,8 @@ msgstr "Orden"
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:331
-#: templates/js/translated/order.js:876 templates/js/translated/part.js:838
-#: templates/js/translated/stock.js:1865 templates/js/translated/stock.js:2716
+#: templates/js/translated/order.js:936 templates/js/translated/part.js:839
+#: templates/js/translated/stock.js:1821 templates/js/translated/stock.js:2672
msgid "Purchase Order"
msgstr "Orden de compra"
@@ -3310,8 +3338,8 @@ msgid "Supplier part"
msgstr "Ítems de Proveedor"
#: order/models.py:920 order/templates/order/order_base.html:163
-#: templates/js/translated/order.js:654 templates/js/translated/order.js:1226
-#: templates/js/translated/part.js:932 templates/js/translated/part.js:959
+#: templates/js/translated/order.js:714 templates/js/translated/order.js:1313
+#: templates/js/translated/part.js:933 templates/js/translated/part.js:960
#: templates/js/translated/table_filters.js:312
msgid "Received"
msgstr "Recibido"
@@ -3320,9 +3348,9 @@ msgstr "Recibido"
msgid "Number of items received"
msgstr "Número de artículos recibidos"
-#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:645
+#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:697
#: stock/serializers.py:170 stock/templates/stock/item_base.html:338
-#: templates/js/translated/stock.js:1919
+#: templates/js/translated/stock.js:1875
msgid "Purchase Price"
msgstr "Precio de Compra"
@@ -3456,11 +3484,11 @@ msgstr "La línea del artículo no coincide con la orden de compra"
msgid "Select destination location for received items"
msgstr "Seleccione la ubicación de destino para los artículos recibidos"
-#: order/serializers.py:273 templates/js/translated/order.js:514
+#: order/serializers.py:273 templates/js/translated/order.js:574
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:281 templates/js/translated/order.js:525
+#: order/serializers.py:281 templates/js/translated/order.js:585
msgid "Enter serial numbers for incoming stock items"
msgstr ""
@@ -3578,7 +3606,7 @@ msgstr "Descripción del pedido"
#: order/templates/order/order_base.html:94
#: order/templates/order/sales_order_base.html:89
-#: templates/js/translated/stock.js:2459
+#: templates/js/translated/stock.js:2415
msgid "Order Status"
msgstr "Estado del pedido"
@@ -3650,10 +3678,10 @@ msgstr "Seleccionar Parte de Proveedor"
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/bom.js:76 templates/js/translated/build.js:380
-#: templates/js/translated/build.js:528 templates/js/translated/build.js:1547
-#: templates/js/translated/order.js:602 templates/js/translated/order.js:1605
-#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769
+#: templates/js/translated/bom.js:76 templates/js/translated/build.js:381
+#: templates/js/translated/build.js:529 templates/js/translated/build.js:1558
+#: templates/js/translated/order.js:662 templates/js/translated/order.js:1693
+#: templates/js/translated/stock.js:557 templates/js/translated/stock.js:725
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr "Eliminar fila"
@@ -3717,8 +3745,8 @@ msgid "Select existing purchase orders, or create new orders."
msgstr "Seleccione los pedidos de compra existentes, o cree nuevos pedidos."
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:940 templates/js/translated/order.js:1403
-#: templates/js/translated/order.js:1533
+#: templates/js/translated/order.js:1000 templates/js/translated/order.js:1491
+#: templates/js/translated/order.js:1621
msgid "Items"
msgstr "Artículos"
@@ -3752,9 +3780,9 @@ msgid "Purchase Order Items"
msgstr "Comprar artículos de orden"
#: order/templates/order/purchase_order_detail.html:27
-#: order/templates/order/purchase_order_detail.html:182
+#: order/templates/order/purchase_order_detail.html:166
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:245
+#: order/templates/order/sales_order_detail.html:233
msgid "Add Line Item"
msgstr "Añadir artículo de línea"
@@ -3794,7 +3822,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr "Esta orden de venta no ha sido completamente asignada"
#: order/templates/order/sales_order_base.html:122
-#: templates/js/translated/order.js:1361
+#: templates/js/translated/order.js:1449
msgid "Customer Reference"
msgstr "Referencia del cliente"
@@ -3827,7 +3855,7 @@ msgid "Pending Shipments"
msgstr "Envíos pendientes"
#: order/templates/order/sales_order_detail.html:48
-#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1465
+#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1466
msgid "Actions"
msgstr "Acciones"
@@ -3902,31 +3930,31 @@ 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/api.py:499
+#: part/api.py:502
msgid "Valid"
msgstr "Válido"
-#: part/api.py:500
+#: part/api.py:503
msgid "Validate entire Bill of Materials"
msgstr "Validación de Lista de Materiales"
-#: part/api.py:505
+#: part/api.py:508
msgid "This option must be selected"
msgstr "Esta opción debe ser seleccionada"
-#: part/api.py:847
+#: part/api.py:866
msgid "Must be greater than zero"
msgstr "Debe ser mayor que 0"
-#: part/api.py:851
+#: part/api.py:870
msgid "Must be a valid quantity"
msgstr "Debe ser una cantidad válida"
-#: part/api.py:866
+#: part/api.py:885
msgid "Specify location for initial part stock"
msgstr "Especificar ubicación para el stock inicial de piezas"
-#: part/api.py:897 part/api.py:901 part/api.py:916 part/api.py:920
+#: part/api.py:916 part/api.py:920 part/api.py:935 part/api.py:939
msgid "This field is required"
msgstr "Este campo es obligatorio"
@@ -3944,7 +3972,7 @@ msgid "Available Stock"
msgstr "Stock Disponible"
#: part/bom.py:128 part/templates/part/part_base.html:203
-#: templates/js/translated/part.js:1323
+#: templates/js/translated/part.js:1324
msgid "On Order"
msgstr "En pedido"
@@ -3976,7 +4004,7 @@ msgstr "Palabras clave predeterminadas"
msgid "Default keywords for parts in this category"
msgstr "Palabras clave por defecto para partes en esta categoría"
-#: part/models.py:97 part/models.py:2571 part/templates/part/category.html:15
+#: part/models.py:97 part/models.py:2585 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Categoría de parte"
@@ -3993,7 +4021,7 @@ msgstr "Categorías de parte"
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:37
-#: templates/js/translated/part.js:1685 templates/navbar.html:21
+#: templates/js/translated/part.js:1686 templates/navbar.html:21
#: templates/stats.html:92 templates/stats.html:101 users/models.py:41
msgid "Parts"
msgstr "Partes"
@@ -4023,7 +4051,7 @@ msgstr "El número de serie más reciente es"
msgid "Duplicate IPN not allowed in part settings"
msgstr "IPN duplicado no permitido en la configuración de partes"
-#: part/models.py:803 part/models.py:2624
+#: part/models.py:803 part/models.py:2638
msgid "Part name"
msgstr "Nombre de la pieza"
@@ -4056,11 +4084,11 @@ msgstr "Palabras claves"
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:841 part/models.py:2321 part/models.py:2570
+#: part/models.py:841 part/models.py:2335 part/models.py:2584
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:223
-#: templates/js/translated/part.js:1290
+#: templates/js/translated/part.js:1291
msgid "Category"
msgstr "Categoría"
@@ -4069,8 +4097,8 @@ msgid "Part category"
msgstr "Categoría de parte"
#: part/models.py:847 part/templates/part/part_base.html:274
-#: templates/js/translated/part.js:618 templates/js/translated/part.js:1243
-#: templates/js/translated/stock.js:1683
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:1244
+#: templates/js/translated/stock.js:1639
msgid "IPN"
msgstr "IPN"
@@ -4083,7 +4111,7 @@ msgid "Part revision or version number"
msgstr "Revisión de parte o número de versión"
#: part/models.py:855 part/templates/part/part_base.html:281
-#: report/models.py:200 templates/js/translated/part.js:622
+#: report/models.py:200 templates/js/translated/part.js:623
msgid "Revision"
msgstr "Revisión"
@@ -4175,301 +4203,309 @@ msgstr "Creación de Usuario"
msgid "Sell multiple"
msgstr "Vender múltiples"
-#: part/models.py:2371
+#: part/models.py:2385
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:2388
+#: part/models.py:2402
msgid "Test with this name already exists for this part"
msgstr "Ya existe una prueba con este nombre para esta parte"
-#: part/models.py:2408 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:1311
+#: part/models.py:2422 templates/js/translated/part.js:1737
+#: templates/js/translated/stock.js:1267
msgid "Test Name"
msgstr "Nombre de prueba"
-#: part/models.py:2409
+#: part/models.py:2423
msgid "Enter a name for the test"
msgstr "Introduzca un nombre para la prueba"
-#: part/models.py:2414
+#: part/models.py:2428
msgid "Test Description"
msgstr "Descripción de prueba"
-#: part/models.py:2415
+#: part/models.py:2429
msgid "Enter description for this test"
msgstr "Introduce la descripción para esta prueba"
-#: part/models.py:2420 templates/js/translated/part.js:1745
+#: part/models.py:2434 templates/js/translated/part.js:1746
#: templates/js/translated/table_filters.js:276
msgid "Required"
msgstr "Requerido"
-#: part/models.py:2421
+#: part/models.py:2435
msgid "Is this test required to pass?"
msgstr "¿Es necesario pasar esta prueba?"
-#: part/models.py:2426 templates/js/translated/part.js:1753
+#: part/models.py:2440 templates/js/translated/part.js:1754
msgid "Requires Value"
msgstr "Requiere valor"
-#: part/models.py:2427
+#: part/models.py:2441
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:2432 templates/js/translated/part.js:1760
+#: part/models.py:2446 templates/js/translated/part.js:1761
msgid "Requires Attachment"
msgstr "Adjunto obligatorio"
-#: part/models.py:2433
+#: part/models.py:2447
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:2444
+#: part/models.py:2458
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr "Carácter no válido en el nombre de la plantilla ({c})"
-#: part/models.py:2480
+#: part/models.py:2494
msgid "Parameter template name must be unique"
msgstr "El nombre de parámetro en la plantilla tiene que ser único"
-#: part/models.py:2488
+#: part/models.py:2502
msgid "Parameter Name"
msgstr "Nombre de Parámetro"
-#: part/models.py:2495
+#: part/models.py:2509
msgid "Parameter Units"
msgstr "Unidad del Parámetro"
-#: part/models.py:2525
+#: part/models.py:2539
msgid "Parent Part"
msgstr "Parte principal"
-#: part/models.py:2527 part/models.py:2576 part/models.py:2577
+#: part/models.py:2541 part/models.py:2590 part/models.py:2591
#: templates/InvenTree/settings/settings.html:218
msgid "Parameter Template"
msgstr "Plantilla de parámetro"
-#: part/models.py:2529
+#: part/models.py:2543
msgid "Data"
msgstr "Data"
-#: part/models.py:2529
+#: part/models.py:2543
msgid "Parameter Value"
msgstr "Valor del parámetro"
-#: part/models.py:2581 templates/InvenTree/settings/settings.html:227
+#: part/models.py:2595 templates/InvenTree/settings/settings.html:227
msgid "Default Value"
msgstr "Valor predeterminado"
-#: part/models.py:2582
+#: part/models.py:2596
msgid "Default Parameter Value"
msgstr "Valor de parámetro por defecto"
-#: part/models.py:2616
+#: part/models.py:2630
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2619 templates/js/translated/model_renderers.js:182
+#: part/models.py:2633 templates/js/translated/model_renderers.js:182
msgid "Part ID"
msgstr "ID de Parte"
-#: part/models.py:2620
+#: part/models.py:2634
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2623
+#: part/models.py:2637
msgid "Part Name"
msgstr ""
-#: part/models.py:2627
+#: part/models.py:2641
msgid "Part IPN"
msgstr ""
-#: part/models.py:2628
+#: part/models.py:2642
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2645
msgid "Level"
msgstr ""
-#: part/models.py:2632
+#: part/models.py:2646
msgid "BOM level"
msgstr ""
-#: part/models.py:2692
+#: part/models.py:2707
msgid "Select parent part"
msgstr "Seleccionar parte principal"
-#: part/models.py:2700
+#: part/models.py:2715
msgid "Sub part"
msgstr "Sub parte"
-#: part/models.py:2701
+#: part/models.py:2716
msgid "Select part to be used in BOM"
msgstr "Seleccionar parte a utilizar en BOM"
-#: part/models.py:2707
+#: part/models.py:2722
msgid "BOM quantity for this BOM item"
msgstr "Cantidad del artículo en BOM"
-#: part/models.py:2709 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:791 templates/js/translated/bom.js:865
+#: part/models.py:2724 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr "Opcional"
-#: part/models.py:2709
+#: part/models.py:2724
msgid "This BOM item is optional"
msgstr "Este elemento BOM es opcional"
-#: part/models.py:2712 part/templates/part/upload_bom.html:55
+#: part/models.py:2727 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr "Exceso"
-#: part/models.py:2713
+#: part/models.py:2728
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr "Cantidad estimada de desperdicio de construcción (absoluta o porcentaje)"
-#: part/models.py:2716
+#: part/models.py:2731
msgid "BOM item reference"
msgstr "Referencia de artículo de BOM"
-#: part/models.py:2719
+#: part/models.py:2734
msgid "BOM item notes"
msgstr "Notas del artículo de BOM"
-#: part/models.py:2721
+#: part/models.py:2736
msgid "Checksum"
msgstr "Checksum"
-#: part/models.py:2721
+#: part/models.py:2736
msgid "BOM line checksum"
msgstr "Suma de comprobación de la línea en BOM"
-#: part/models.py:2725 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:882
+#: part/models.py:2740 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:880
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr "Heredado"
-#: part/models.py:2726
+#: part/models.py:2741
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:2731 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:874
+#: part/models.py:2746 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:872
msgid "Allow Variants"
msgstr "Permitir variantes"
-#: part/models.py:2732
+#: part/models.py:2747
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:2817 stock/models.py:394
+#: part/models.py:2832 stock/models.py:446
msgid "Quantity must be integer value for trackable parts"
msgstr "La cantidad debe ser un valor entero para las partes rastreables"
-#: part/models.py:2826 part/models.py:2828
+#: part/models.py:2841 part/models.py:2843
msgid "Sub part must be specified"
msgstr "Debe especificar la subparte"
-#: part/models.py:2957
+#: part/models.py:2972
msgid "BOM Item Substitute"
msgstr "Ítem de BOM sustituto"
-#: part/models.py:2979
+#: part/models.py:2994
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:2991
+#: part/models.py:3006
msgid "Parent BOM item"
msgstr "Artículo BOM superior"
-#: part/models.py:2999
+#: part/models.py:3014
msgid "Substitute part"
msgstr "Sustituir parte"
-#: part/models.py:3010
+#: part/models.py:3025
msgid "Part 1"
msgstr "Parte 1"
-#: part/models.py:3014
+#: part/models.py:3029
msgid "Part 2"
msgstr "Parte 2"
-#: part/models.py:3014
+#: part/models.py:3029
msgid "Select Related Part"
msgstr "Seleccionar parte relacionada"
-#: part/models.py:3046
+#: part/models.py:3061
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr "Error al crear relación: compruebe que la parte no está relacionada con sí misma y que la relación es única"
-#: part/serializers.py:667
+#: part/serializers.py:670
msgid "Select part to copy BOM from"
msgstr "Seleccionar parte de la que copiar BOM"
-#: part/serializers.py:678
+#: part/serializers.py:681
msgid "Remove Existing Data"
msgstr "Eliminar Datos Existentes"
-#: part/serializers.py:679
+#: part/serializers.py:682
msgid "Remove existing BOM items before copying"
msgstr "Eliminar elementos BOM existentes antes de copiar"
-#: part/serializers.py:684
+#: part/serializers.py:687
msgid "Include Inherited"
msgstr "Incluye Heredado"
-#: part/serializers.py:685
+#: part/serializers.py:688
msgid "Include BOM items which are inherited from templated parts"
msgstr "Incluye elementos BOM que son heredados de partes con plantillas"
-#: part/serializers.py:690
+#: part/serializers.py:693
msgid "Skip Invalid Rows"
msgstr "Omitir filas no válidas"
-#: part/serializers.py:691
+#: part/serializers.py:694
msgid "Enable this option to skip invalid rows"
msgstr "Activar esta opción para omitir filas inválidas"
-#: part/serializers.py:734
+#: part/serializers.py:699
+msgid "Copy Substitute Parts"
+msgstr ""
+
+#: part/serializers.py:700
+msgid "Copy substitute parts when duplicate BOM items"
+msgstr ""
+
+#: part/serializers.py:744
msgid "Clear Existing BOM"
msgstr "Limpiar BOM Existente"
-#: part/serializers.py:735
+#: part/serializers.py:745
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:762
+#: part/serializers.py:772
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:805
+#: part/serializers.py:815
msgid "Multiple matching parts found"
msgstr "Varios resultados encontrados"
-#: part/serializers.py:808
+#: part/serializers.py:818
msgid "No matching part found"
msgstr "No se encontraron partes coincidentes"
-#: part/serializers.py:811
+#: part/serializers.py:821
msgid "Part is not designated as a component"
msgstr "La parte no está designada como componente"
-#: part/serializers.py:820
+#: part/serializers.py:830
msgid "Quantity not provided"
msgstr "Cantidad no proporcionada"
-#: part/serializers.py:828
+#: part/serializers.py:838
msgid "Invalid quantity"
msgstr "Cantidad no válida"
-#: part/serializers.py:847
+#: part/serializers.py:857
msgid "At least one BOM item is required"
msgstr "Se requiere al menos un elemento BOM"
@@ -4496,7 +4532,7 @@ msgstr "El BOM para %(part)s fue revisado por última vez por %(checker
msgid "The BOM for %(part)s has not been validated."
msgstr "El BOM para %(part)s no ha sido validada."
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:279
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:274
msgid "BOM actions"
msgstr "Acciones BOM"
@@ -4548,7 +4584,7 @@ msgstr "Ruta de Categoría"
msgid "Top level part category"
msgstr "Categoría de partes de nivel superior"
-#: part/templates/part/category.html:114 part/templates/part/category.html:205
+#: part/templates/part/category.html:114 part/templates/part/category.html:202
#: part/templates/part/category_sidebar.html:7
msgid "Subcategories"
msgstr "Subcategorías"
@@ -4557,55 +4593,51 @@ msgstr "Subcategorías"
msgid "Parts (Including subcategories)"
msgstr "Partes (incluyendo subcategorías)"
-#: part/templates/part/category.html:156
-msgid "Export Part Data"
-msgstr "Exportar Datos de Parte"
-
-#: part/templates/part/category.html:157 part/templates/part/category.html:181
-msgid "Export"
-msgstr "Exportar"
-
-#: part/templates/part/category.html:160
+#: part/templates/part/category.html:157
msgid "Create new part"
msgstr "Crear nueva parte"
-#: part/templates/part/category.html:161 templates/js/translated/bom.js:365
+#: part/templates/part/category.html:158 templates/js/translated/bom.js:365
msgid "New Part"
msgstr "Nueva Parte"
-#: part/templates/part/category.html:175
+#: part/templates/part/category.html:172
msgid "Set category"
msgstr "Definir categoría"
-#: part/templates/part/category.html:175
+#: part/templates/part/category.html:172
msgid "Set Category"
msgstr "Definir Categoría"
-#: part/templates/part/category.html:179
+#: part/templates/part/category.html:176
msgid "Print Labels"
msgstr "Imprimir Etiquetas"
-#: part/templates/part/category.html:181
+#: part/templates/part/category.html:178
+msgid "Export"
+msgstr "Exportar"
+
+#: part/templates/part/category.html:178
msgid "Export Data"
msgstr "Exportar Datos"
-#: part/templates/part/category.html:195
+#: part/templates/part/category.html:192
msgid "Part Parameters"
msgstr "Parámetros de Parte"
-#: part/templates/part/category.html:288
+#: part/templates/part/category.html:285
msgid "Create Part Category"
msgstr "Crear Categoría de Parte"
-#: part/templates/part/category.html:315
+#: part/templates/part/category.html:305
msgid "Create Part"
msgstr "Crear Parte"
-#: part/templates/part/category.html:318
+#: part/templates/part/category.html:308
msgid "Create another part after this one"
msgstr ""
-#: part/templates/part/category.html:319
+#: part/templates/part/category.html:309
msgid "Part created successfully"
msgstr ""
@@ -4676,155 +4708,150 @@ msgstr "%(full_name)s - %(desc)s (%(match_per)s%% coincidencia)"
msgid "Part Stock"
msgstr "Stock de parte"
-#: part/templates/part/detail.html:33
-#, python-format
-msgid "Showing stock for all variants of %(full_name)s"
-msgstr "Mostrando stock para todas las variantes de %(full_name)s"
-
-#: part/templates/part/detail.html:43
+#: part/templates/part/detail.html:38
msgid "Part Stock Allocations"
msgstr "Asignaciones de Stock de Parte"
-#: part/templates/part/detail.html:60
+#: part/templates/part/detail.html:55
msgid "Part Test Templates"
msgstr "Plantillas de prueba de parte"
-#: part/templates/part/detail.html:65
+#: part/templates/part/detail.html:60
msgid "Add Test Template"
msgstr "Añadir Plantilla de Prueba"
-#: part/templates/part/detail.html:122
+#: part/templates/part/detail.html:117
msgid "Sales Order Allocations"
msgstr "Asignaciones de órdenes de venta"
-#: part/templates/part/detail.html:168
+#: part/templates/part/detail.html:163
msgid "Part Variants"
msgstr "Variantes de Parte"
-#: part/templates/part/detail.html:172
+#: part/templates/part/detail.html:167
msgid "Create new variant"
msgstr "Crear nueva variante"
-#: part/templates/part/detail.html:173
+#: part/templates/part/detail.html:168
msgid "New Variant"
msgstr "Nueva Variante"
-#: part/templates/part/detail.html:200
+#: part/templates/part/detail.html:195
msgid "Add new parameter"
msgstr "Añadir nuevo parámetro"
-#: part/templates/part/detail.html:237 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:52
msgid "Related Parts"
msgstr "Partes relacionadas"
-#: part/templates/part/detail.html:241 part/templates/part/detail.html:242
+#: part/templates/part/detail.html:236 part/templates/part/detail.html:237
msgid "Add Related"
msgstr "Añadir Relacionado"
-#: part/templates/part/detail.html:262 part/templates/part/part_sidebar.html:18
+#: part/templates/part/detail.html:257 part/templates/part/part_sidebar.html:18
msgid "Bill of Materials"
msgstr "Lista de Materiales"
-#: part/templates/part/detail.html:267
+#: part/templates/part/detail.html:262
msgid "Export actions"
msgstr "Exportar acciones"
-#: part/templates/part/detail.html:271 templates/js/translated/bom.js:283
+#: part/templates/part/detail.html:266 templates/js/translated/bom.js:283
msgid "Export BOM"
msgstr "Exportar BOM"
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:268
msgid "Print BOM Report"
msgstr "Imprimir informe BOM"
-#: part/templates/part/detail.html:283
+#: part/templates/part/detail.html:278
msgid "Upload BOM"
msgstr "Subir BOM"
-#: part/templates/part/detail.html:285 templates/js/translated/part.js:272
+#: part/templates/part/detail.html:279 templates/js/translated/part.js:272
msgid "Copy BOM"
msgstr "Copiar BOM"
-#: part/templates/part/detail.html:287
+#: part/templates/part/detail.html:280
msgid "Validate BOM"
msgstr "Validar BOM"
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:285
msgid "New BOM Item"
msgstr "Nuevo Item en el BOM"
-#: part/templates/part/detail.html:293
+#: part/templates/part/detail.html:286
msgid "Add BOM Item"
msgstr "Añadir artículo al BOM"
-#: part/templates/part/detail.html:306
+#: part/templates/part/detail.html:299
msgid "Assemblies"
msgstr "Ensamblajes"
-#: part/templates/part/detail.html:323
+#: part/templates/part/detail.html:316
msgid "Part Builds"
msgstr "Construcción de partes"
-#: part/templates/part/detail.html:348
+#: part/templates/part/detail.html:341
msgid "Build Order Allocations"
msgstr "Construir adjudicaciones de pedidos"
-#: part/templates/part/detail.html:363
+#: part/templates/part/detail.html:356
msgid "Part Suppliers"
msgstr "Proveedores de piezas"
-#: part/templates/part/detail.html:391
+#: part/templates/part/detail.html:384
msgid "Part Manufacturers"
msgstr "Fabricantes de piezas"
-#: part/templates/part/detail.html:407
+#: part/templates/part/detail.html:400
msgid "Delete manufacturer parts"
msgstr "Eliminar partes del fabricante"
-#: part/templates/part/detail.html:589
+#: part/templates/part/detail.html:582
msgid "Delete selected BOM items?"
msgstr "¿Eliminar elementos BOM seleccionados?"
-#: part/templates/part/detail.html:590
+#: part/templates/part/detail.html:583
msgid "All selected BOM items will be deleted"
msgstr "Todos los elementos BOM seleccionados serán eliminados"
-#: part/templates/part/detail.html:639
+#: part/templates/part/detail.html:632
msgid "Create BOM Item"
msgstr "Crear artículo para el BOM"
-#: part/templates/part/detail.html:696
+#: part/templates/part/detail.html:689
msgid "Related Part"
msgstr "Partes relacionadas"
-#: part/templates/part/detail.html:704
+#: part/templates/part/detail.html:697
msgid "Add Related Part"
msgstr "Añadir artículos relacionados"
-#: part/templates/part/detail.html:801
+#: part/templates/part/detail.html:794
msgid "Add Test Result Template"
msgstr "Añadir plantilla de resultados de prueba"
-#: part/templates/part/detail.html:858
+#: part/templates/part/detail.html:844
msgid "Edit Part Notes"
msgstr "Editar notas del artículo"
-#: part/templates/part/detail.html:971
+#: part/templates/part/detail.html:957
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr "Precio de unidad de compra - %(currency)s"
-#: part/templates/part/detail.html:983
+#: part/templates/part/detail.html:969
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr "Diferencia entre precio y costo unitario - %(currency)s"
-#: part/templates/part/detail.html:995
+#: part/templates/part/detail.html:981
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr "Costo de Unidad de Proveedor - %(currency)s"
-#: part/templates/part/detail.html:1084
+#: part/templates/part/detail.html:1070
#, python-format
msgid "Unit Price - %(currency)s"
msgstr "Precio unitario - %(currency)s"
@@ -4969,7 +4996,7 @@ msgstr "La pieza es virtual (no una pieza física)"
#: templates/js/translated/company.js:508
#: templates/js/translated/company.js:765
#: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:533 templates/js/translated/part.js:610
+#: templates/js/translated/part.js:534 templates/js/translated/part.js:611
msgid "Inactive"
msgstr "Inactivo"
@@ -4983,7 +5010,7 @@ msgstr "Mostrar Detalles de Parte"
msgid "This part is a variant of %(link)s"
msgstr "Esta parte es una variante de %(link)s"
-#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2356
+#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2444
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr "En Stock"
@@ -5000,12 +5027,12 @@ msgstr "Requerido para Pedidos de Venta"
msgid "Allocated to Orders"
msgstr "Asignado a Pedidos"
-#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:903
+#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:901
msgid "Can Build"
msgstr "Puede construir"
-#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1154
-#: templates/js/translated/part.js:1327
+#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1155
+#: templates/js/translated/part.js:1328
msgid "Building"
msgstr "En construcción"
@@ -5057,7 +5084,7 @@ msgid "Total Cost"
msgstr "Costo Total"
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:857
+#: templates/js/translated/bom.js:855
msgid "No supplier pricing available"
msgstr "Ningún precio de proveedor disponible"
@@ -5179,7 +5206,7 @@ msgstr "Mostrar precio de venta"
msgid "Calculation parameters"
msgstr "Parámetros de cálculo"
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:851
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849
msgid "Supplier Cost"
msgstr "Coste de Proveedor"
@@ -5201,7 +5228,7 @@ msgstr "No hay historial de precios de stock disponible para esta parte."
msgid "Internal Cost"
msgstr "Coste Interno"
-#: part/templates/part/prices.html:215 part/views.py:1390
+#: part/templates/part/prices.html:215 part/views.py:1325
msgid "Add Internal Price Break"
msgstr "Añadir salto de precio interno"
@@ -5221,9 +5248,9 @@ msgstr "No hay historial de precios de venta disponible para esta parte."
msgid "Set category for the following parts"
msgstr "Establecer categoría para las siguientes partes"
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813
-#: templates/js/translated/part.js:497 templates/js/translated/part.js:1144
-#: templates/js/translated/part.js:1331
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811
+#: templates/js/translated/part.js:498 templates/js/translated/part.js:1145
+#: templates/js/translated/part.js:1332
msgid "No Stock"
msgstr "Sin Stock"
@@ -5277,100 +5304,100 @@ msgstr "Crear nueva variante de pieza"
msgid "Create a new variant of template '%(full_name)s'."
msgstr "Crear una nueva variante de la plantilla '%(full_name)s'."
-#: part/templatetags/inventree_extras.py:172
+#: part/templatetags/inventree_extras.py:174
msgid "Unknown database"
msgstr "Base de datos desconocida"
-#: part/views.py:90
+#: part/views.py:88
msgid "Set Part Category"
msgstr "Definir Categoría de Parte"
-#: part/views.py:140
+#: part/views.py:138
#, python-brace-format
msgid "Set category for {n} parts"
msgstr "Establecer categoría para {n} partes"
-#: part/views.py:212
+#: part/views.py:210
msgid "Match References"
msgstr "Coincidir Referencias"
-#: part/views.py:509
+#: part/views.py:507
msgid "None"
msgstr "Ninguna"
-#: part/views.py:568
+#: part/views.py:566
msgid "Part QR Code"
msgstr "Código QR de Parte"
-#: part/views.py:670
+#: part/views.py:668
msgid "Select Part Image"
msgstr "Seleccionar Imagen de Parte"
-#: part/views.py:696
+#: part/views.py:694
msgid "Updated part image"
msgstr "Imagen de parte actualizada"
-#: part/views.py:699
+#: part/views.py:697
msgid "Part image not found"
msgstr "Imagen de parte no encontrada"
-#: part/views.py:850
+#: part/views.py:785
msgid "Confirm Part Deletion"
msgstr "Confirmar Eliminación de Parte"
-#: part/views.py:857
+#: part/views.py:792
msgid "Part was deleted"
msgstr "Parte fue eliminada"
-#: part/views.py:866
+#: part/views.py:801
msgid "Part Pricing"
msgstr "Precio de parte"
-#: part/views.py:1015
+#: part/views.py:950
msgid "Create Part Parameter Template"
msgstr "Crear plantilla Parámetro de Parte"
-#: part/views.py:1025
+#: part/views.py:960
msgid "Edit Part Parameter Template"
msgstr "Crear plantilla Parámetro de Parte"
-#: part/views.py:1032
+#: part/views.py:967
msgid "Delete Part Parameter Template"
msgstr "Eliminar Plantilla de Parámetros de Parte"
-#: part/views.py:1091 templates/js/translated/part.js:315
+#: part/views.py:1026 templates/js/translated/part.js:315
msgid "Edit Part Category"
msgstr "Editar Categoría de Parte"
-#: part/views.py:1129
+#: part/views.py:1064
msgid "Delete Part Category"
msgstr "Eliminar Categoría de Parte"
-#: part/views.py:1135
+#: part/views.py:1070
msgid "Part category was deleted"
msgstr "Categoría de parte eliminada"
-#: part/views.py:1144
+#: part/views.py:1079
msgid "Create Category Parameter Template"
msgstr "Crear plantilla de parámetro de categoría"
-#: part/views.py:1245
+#: part/views.py:1180
msgid "Edit Category Parameter Template"
msgstr "Editar plantilla de parámetro de categoría"
-#: part/views.py:1301
+#: part/views.py:1236
msgid "Delete Category Parameter Template"
msgstr "Eliminar plantilla de parámetro de categoría"
-#: part/views.py:1323
+#: part/views.py:1258
msgid "Added new price break"
msgstr "Nuevo diferencial de precio añadido"
-#: part/views.py:1399
+#: part/views.py:1334
msgid "Edit Internal Price Break"
msgstr "Editar Diferencial de Precio Interno"
-#: part/views.py:1407
+#: part/views.py:1342
msgid "Delete Internal Price Break"
msgstr "Eliminar Diferencial de Precio Interno"
@@ -5576,12 +5603,12 @@ msgid "Stock Item Test Report"
msgstr "Artículo Stock Informe de prueba"
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:556 stock/templates/stock/item_base.html:151
-#: templates/js/translated/build.js:373 templates/js/translated/build.js:521
-#: templates/js/translated/build.js:919 templates/js/translated/build.js:1295
+#: stock/models.py:608 stock/templates/stock/item_base.html:151
+#: templates/js/translated/build.js:374 templates/js/translated/build.js:522
+#: templates/js/translated/build.js:920 templates/js/translated/build.js:1296
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:99 templates/js/translated/order.js:2062
-#: templates/js/translated/order.js:2151 templates/js/translated/stock.js:423
+#: templates/js/translated/order.js:99 templates/js/translated/order.js:2150
+#: templates/js/translated/order.js:2239 templates/js/translated/stock.js:422
msgid "Serial Number"
msgstr "Número de serie"
@@ -5590,19 +5617,19 @@ msgid "Test Results"
msgstr "Resultados de la Prueba"
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:2052
+#: stock/models.py:2104
msgid "Test"
msgstr "Prueba"
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:2058
+#: stock/models.py:2110
msgid "Result"
msgstr "Resultado"
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:50
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:924 templates/js/translated/stock.js:2657
+#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2613
msgid "Date"
msgstr "Fecha"
@@ -5620,26 +5647,26 @@ msgid "Installed Items"
msgstr "Elementos instalados"
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756
-#: templates/js/translated/stock.js:2910
+#: templates/js/translated/stock.js:542 templates/js/translated/stock.js:712
+#: templates/js/translated/stock.js:2866
msgid "Serial"
msgstr "Serial"
-#: stock/api.py:501
+#: stock/api.py:503
msgid "Quantity is required"
msgstr "Cantidad requerida"
-#: stock/api.py:508
+#: stock/api.py:510
msgid "Valid part must be supplied"
msgstr "Debe suministrarse una pieza válida"
-#: stock/api.py:533
+#: stock/api.py:535
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/forms.py:74 stock/forms.py:198 stock/models.py:613
+#: stock/forms.py:74 stock/forms.py:198 stock/models.py:665
#: stock/templates/stock/item_base.html:188
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1791
msgid "Expiry Date"
msgstr "Fecha de Expiración"
@@ -5679,228 +5706,228 @@ msgstr "Confirmar desinstalación"
msgid "Confirm removal of installed stock items"
msgstr "Confirmar la eliminación de los artículos de stock instalados"
-#: stock/models.py:62 stock/models.py:650
+#: stock/models.py:62 stock/models.py:702
#: stock/templates/stock/item_base.html:402
msgid "Owner"
msgstr "Propietario"
-#: stock/models.py:63 stock/models.py:651
+#: stock/models.py:63 stock/models.py:703
msgid "Select Owner"
msgstr "Seleccionar Propietario"
-#: stock/models.py:375
+#: stock/models.py:427
msgid "StockItem with this serial number already exists"
msgstr "Ya existe un Stock con este número de serie"
-#: stock/models.py:411
+#: stock/models.py:463
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr "Tipo de pieza ('{pf}') debe ser {pe}"
-#: stock/models.py:421 stock/models.py:430
+#: stock/models.py:473 stock/models.py:482
msgid "Quantity must be 1 for item with a serial number"
msgstr "La cantidad debe ser 1 para el artículo con un número de serie"
-#: stock/models.py:422
+#: stock/models.py:474
msgid "Serial number cannot be set if quantity greater than 1"
msgstr "Número de serie no se puede establecer si la cantidad es mayor que 1"
-#: stock/models.py:444
+#: stock/models.py:496
msgid "Item cannot belong to itself"
msgstr "El objeto no puede pertenecer a sí mismo"
-#: stock/models.py:450
+#: stock/models.py:502
msgid "Item must have a build reference if is_building=True"
msgstr "El elemento debe tener una referencia de construcción si is_building=True"
-#: stock/models.py:457
+#: stock/models.py:509
msgid "Build reference does not point to the same part object"
msgstr "La referencia de la construcción no apunta al mismo objeto de parte"
-#: stock/models.py:500
+#: stock/models.py:552
msgid "Parent Stock Item"
msgstr "Artículo de stock padre"
-#: stock/models.py:509
+#: stock/models.py:561
msgid "Base part"
msgstr "Parte base"
-#: stock/models.py:517
+#: stock/models.py:569
msgid "Select a matching supplier part for this stock item"
msgstr "Seleccione una parte del proveedor correspondiente para este artículo de stock"
-#: stock/models.py:523 stock/templates/stock/location.html:16
+#: stock/models.py:575 stock/templates/stock/location.html:16
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr "Ubicación de Stock"
-#: stock/models.py:526
+#: stock/models.py:578
msgid "Where is this stock item located?"
msgstr "¿Dónde se encuentra este artículo de stock?"
-#: stock/models.py:533
+#: stock/models.py:585
msgid "Packaging this stock item is stored in"
msgstr "Empaquetar este elemento de stock se almacena en"
-#: stock/models.py:539 stock/templates/stock/item_base.html:277
+#: stock/models.py:591 stock/templates/stock/item_base.html:277
msgid "Installed In"
msgstr "Instalado en"
-#: stock/models.py:542
+#: stock/models.py:594
msgid "Is this item installed in another item?"
msgstr "¿Está este elemento instalado en otro elemento?"
-#: stock/models.py:558
+#: stock/models.py:610
msgid "Serial number for this item"
msgstr "Número de serie para este elemento"
-#: stock/models.py:572
+#: stock/models.py:624
msgid "Batch code for this stock item"
msgstr "Código de lote para este artículo de stock"
-#: stock/models.py:576
+#: stock/models.py:628
msgid "Stock Quantity"
msgstr "Cantidad de Stock"
-#: stock/models.py:585
+#: stock/models.py:637
msgid "Source Build"
msgstr "Build de origen"
-#: stock/models.py:587
+#: stock/models.py:639
msgid "Build for this stock item"
msgstr "Build para este item de stock"
-#: stock/models.py:598
+#: stock/models.py:650
msgid "Source Purchase Order"
msgstr "Orden de compra de origen"
-#: stock/models.py:601
+#: stock/models.py:653
msgid "Purchase order for this stock item"
msgstr "Orden de compra para este artículo de stock"
-#: stock/models.py:607
+#: stock/models.py:659
msgid "Destination Sales Order"
msgstr "Orden de venta de destino"
-#: stock/models.py:614
+#: stock/models.py:666
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr "Fecha de caducidad del artículo de stock. El stock se considerará caducado después de esta fecha"
-#: stock/models.py:627
+#: stock/models.py:679
msgid "Delete on deplete"
msgstr "Eliminar al agotar"
-#: stock/models.py:627
+#: stock/models.py:679
msgid "Delete this Stock Item when stock is depleted"
msgstr "Eliminar este artículo de stock cuando se agoten las existencias"
-#: stock/models.py:637 stock/templates/stock/item.html:121
+#: stock/models.py:689 stock/templates/stock/item.html:121
msgid "Stock Item Notes"
msgstr "Notas del artículo de stock"
-#: stock/models.py:646
+#: stock/models.py:698
msgid "Single unit purchase price at time of purchase"
msgstr "Precio de compra único en el momento de la compra"
-#: stock/models.py:1171
+#: stock/models.py:1223
msgid "Part is not set as trackable"
msgstr "La parte no está establecida como rastreable"
-#: stock/models.py:1177
+#: stock/models.py:1229
msgid "Quantity must be integer"
msgstr "Cantidad debe ser un entero"
-#: stock/models.py:1183
+#: stock/models.py:1235
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr "La cantidad no debe exceder la cantidad disponible de existencias ({n})"
-#: stock/models.py:1186
+#: stock/models.py:1238
msgid "Serial numbers must be a list of integers"
msgstr "Los números de serie deben ser una lista de enteros"
-#: stock/models.py:1189
+#: stock/models.py:1241
msgid "Quantity does not match serial numbers"
msgstr "La cantidad no coincide con los números de serie"
-#: stock/models.py:1196
+#: stock/models.py:1248
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr "Los números de serie ya existen: {exists}"
-#: stock/models.py:1267
+#: stock/models.py:1319
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:1270
+#: stock/models.py:1322
msgid "Stock item is installed in another item"
msgstr "Artículo de stock está instalado en otro artículo"
-#: stock/models.py:1273
+#: stock/models.py:1325
msgid "Stock item contains other items"
msgstr "Artículo de stock contiene otros artículos"
-#: stock/models.py:1276
+#: stock/models.py:1328
msgid "Stock item has been assigned to a customer"
msgstr "Artículo de stock ha sido asignado a un cliente"
-#: stock/models.py:1279
+#: stock/models.py:1331
msgid "Stock item is currently in production"
msgstr "El artículo de stock está en producción"
-#: stock/models.py:1282
+#: stock/models.py:1334
msgid "Serialized stock cannot be merged"
msgstr "Stock serializado no puede ser combinado"
-#: stock/models.py:1289 stock/serializers.py:832
+#: stock/models.py:1341 stock/serializers.py:832
msgid "Duplicate stock items"
msgstr "Artículos de Stock Duplicados"
-#: stock/models.py:1293
+#: stock/models.py:1345
msgid "Stock items must refer to the same part"
msgstr "Los artículos de stock deben referirse a la misma parte"
-#: stock/models.py:1297
+#: stock/models.py:1349
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:1301
+#: stock/models.py:1353
msgid "Stock status codes must match"
msgstr "Los códigos de estado del stock deben coincidir"
-#: stock/models.py:1473
+#: stock/models.py:1525
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:1972
+#: stock/models.py:2024
msgid "Entry notes"
msgstr "Notas de entrada"
-#: stock/models.py:2029
+#: stock/models.py:2081
msgid "Value must be provided for this test"
msgstr "Debe proporcionarse un valor para esta prueba"
-#: stock/models.py:2035
+#: stock/models.py:2087
msgid "Attachment must be uploaded for this test"
msgstr "El archivo adjunto debe ser subido para esta prueba"
-#: stock/models.py:2053
+#: stock/models.py:2105
msgid "Test name"
msgstr "Nombre del test"
-#: stock/models.py:2059
+#: stock/models.py:2111
msgid "Test result"
msgstr "Resultado de la prueba"
-#: stock/models.py:2065
+#: stock/models.py:2117
msgid "Test output value"
msgstr "Valor de salida de prueba"
-#: stock/models.py:2072
+#: stock/models.py:2124
msgid "Test result attachment"
msgstr "Adjunto de resultados de prueba"
-#: stock/models.py:2078
+#: stock/models.py:2130
msgid "Test notes"
msgstr "Notas de prueba"
@@ -5937,7 +5964,7 @@ msgstr "Campo de nota opcional"
msgid "Serial numbers cannot be assigned to this part"
msgstr "Los números de serie no se pueden asignar a esta parte"
-#: stock/serializers.py:363 stock/views.py:1127
+#: stock/serializers.py:363 stock/views.py:1009
msgid "Serial numbers already exist"
msgstr "Números de serie ya existen"
@@ -6054,11 +6081,11 @@ msgstr "Añadir Datos de Prueba"
msgid "Installed Stock Items"
msgstr "Elementos de Stock instalados"
-#: stock/templates/stock/item.html:147 templates/js/translated/stock.js:3019
+#: stock/templates/stock/item.html:147 templates/js/translated/stock.js:2975
msgid "Install Stock Item"
msgstr "Instalar elemento de stock"
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1479
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1435
msgid "Add Test Result"
msgstr "Añadir Resultado de Prueba"
@@ -6072,7 +6099,7 @@ msgstr "Desvincular Código de Barras"
msgid "Link Barcode"
msgstr "Vincular Código de Barras"
-#: stock/templates/stock/item_base.html:46 templates/stock_table.html:24
+#: stock/templates/stock/item_base.html:46 templates/stock_table.html:21
msgid "Scan to Location"
msgstr "Escanear a la ubicación"
@@ -6085,15 +6112,15 @@ msgid "Stock adjustment actions"
msgstr "Acciones de ajuste de stock"
#: stock/templates/stock/item_base.html:69
-#: stock/templates/stock/location.html:52 templates/stock_table.html:50
+#: stock/templates/stock/location.html:52 templates/stock_table.html:47
msgid "Count stock"
msgstr "Contar stock"
-#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48
+#: stock/templates/stock/item_base.html:72 templates/stock_table.html:45
msgid "Add stock"
msgstr "Añadir stock"
-#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49
+#: stock/templates/stock/item_base.html:75 templates/stock_table.html:46
msgid "Remove stock"
msgstr "Eliminar stock"
@@ -6102,11 +6129,11 @@ msgid "Serialize stock"
msgstr "Serializar stock"
#: stock/templates/stock/item_base.html:82
-#: stock/templates/stock/location.html:58 templates/stock_table.html:51
+#: stock/templates/stock/location.html:58 templates/stock_table.html:48
msgid "Transfer stock"
msgstr "Transferir stock"
-#: stock/templates/stock/item_base.html:85 templates/stock_table.html:54
+#: stock/templates/stock/item_base.html:85 templates/stock_table.html:51
msgid "Assign to customer"
msgstr "Asignar a cliente"
@@ -6183,7 +6210,7 @@ msgid "Stale"
msgstr "Desactualizado"
#: stock/templates/stock/item_base.html:201
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1807
msgid "Last Updated"
msgstr "Última actualización"
@@ -6220,7 +6247,7 @@ msgid "This stock item is serialized - it has a unique serial number and the qua
msgstr "Este artículo de stock está serializado - tiene un número de serie único y la cantidad no se puede ajustar."
#: stock/templates/stock/item_base.html:296
-#: templates/js/translated/build.js:1317
+#: templates/js/translated/build.js:1318
msgid "No location set"
msgstr "Ubicación no establecida"
@@ -6322,11 +6349,11 @@ msgstr "Sub-ubicación"
msgid "Stock Locations"
msgstr "Ubicaciones de Stock"
-#: stock/templates/stock/location.html:185 templates/stock_table.html:30
+#: stock/templates/stock/location.html:185 templates/stock_table.html:27
msgid "Printing Actions"
msgstr "Acciones de impresión"
-#: stock/templates/stock/location.html:189 templates/stock_table.html:34
+#: stock/templates/stock/location.html:189 templates/stock_table.html:31
msgid "Print labels"
msgstr "Imprimir Etiquetas"
@@ -6350,7 +6377,7 @@ msgstr "Elementos secundarios"
msgid "The following stock items will be uninstalled"
msgstr "Se desinstalarán los siguientes elementos de stock"
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:749
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:631
msgid "Convert Stock Item"
msgstr "Convertir artículo de stock"
@@ -6371,95 +6398,95 @@ msgstr "Esta acción no se puede deshacer fácilmente"
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr "¿Está seguro que desea eliminar este elemento de stock?"
-#: stock/views.py:181 templates/js/translated/stock.js:139
+#: stock/views.py:152 templates/js/translated/stock.js:138
msgid "Edit Stock Location"
msgstr "Editar ubicación de stock"
-#: stock/views.py:288 stock/views.py:728 stock/views.py:854 stock/views.py:1136
+#: stock/views.py:259 stock/views.py:610 stock/views.py:736 stock/views.py:1018
msgid "Owner is required (ownership control is enabled)"
msgstr "El propietario es requerido (el control de propiedad está habilitado)"
-#: stock/views.py:303
+#: stock/views.py:274
msgid "Stock Location QR code"
msgstr "Código QR de ubicación de stock"
-#: stock/views.py:322
+#: stock/views.py:293
msgid "Return to Stock"
msgstr "Volver a Stock"
-#: stock/views.py:331
+#: stock/views.py:302
msgid "Specify a valid location"
msgstr "Especifique una ubicación válida"
-#: stock/views.py:342
+#: stock/views.py:313
msgid "Stock item returned from customer"
msgstr "Artículo de stock devuelto por el cliente"
-#: stock/views.py:353
+#: stock/views.py:324
msgid "Delete All Test Data"
msgstr "Borrar todos los datos de prueba"
-#: stock/views.py:370
+#: stock/views.py:341
msgid "Confirm test data deletion"
msgstr "Confirmar eliminación de datos de prueba"
-#: stock/views.py:371
+#: stock/views.py:342
msgid "Check the confirmation box"
msgstr "Marque la casilla de confirmación"
-#: stock/views.py:475
+#: stock/views.py:357
msgid "Stock Item QR Code"
msgstr "Código QR de Item de Stock"
-#: stock/views.py:500
+#: stock/views.py:382
msgid "Uninstall Stock Items"
msgstr "Desinstalar artículos de stock"
-#: stock/views.py:597 templates/js/translated/stock.js:1074
+#: stock/views.py:479 templates/js/translated/stock.js:1030
msgid "Confirm stock adjustment"
msgstr "Confirmar ajuste de stock"
-#: stock/views.py:608
+#: stock/views.py:490
msgid "Uninstalled stock items"
msgstr "Artículos de stock desinstalados"
-#: stock/views.py:630 templates/js/translated/stock.js:332
+#: stock/views.py:512 templates/js/translated/stock.js:331
msgid "Edit Stock Item"
msgstr "Editar artículo de stock"
-#: stock/views.py:780
+#: stock/views.py:662
msgid "Create new Stock Location"
msgstr "Crear nueva ubicación de stock"
-#: stock/views.py:881
+#: stock/views.py:763
msgid "Create new Stock Item"
msgstr "Crear nuevo artículo de stock"
-#: stock/views.py:1023 templates/js/translated/stock.js:312
+#: stock/views.py:905 templates/js/translated/stock.js:311
msgid "Duplicate Stock Item"
msgstr "Duplicar artículo de stock"
-#: stock/views.py:1105
+#: stock/views.py:987
msgid "Quantity cannot be negative"
msgstr "La cantidad no puede ser negativa"
-#: stock/views.py:1205
+#: stock/views.py:1087
msgid "Delete Stock Location"
msgstr "Eliminar ubicación de stock"
-#: stock/views.py:1218
+#: stock/views.py:1100
msgid "Delete Stock Item"
msgstr "Eliminar elemento de stock"
-#: stock/views.py:1229
+#: stock/views.py:1111
msgid "Delete Stock Tracking Entry"
msgstr "Eliminar registro de stock"
-#: stock/views.py:1236
+#: stock/views.py:1118
msgid "Edit Stock Tracking Entry"
msgstr "Editar registro de stock"
-#: stock/views.py:1245
+#: stock/views.py:1127
msgid "Add Stock Tracking Entry"
msgstr "Añadir entrada de seguimiento de stock"
@@ -7386,14 +7413,14 @@ msgid "The following parts are low on required stock"
msgstr "Las siguientes partes están bajas en stock requerido"
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1335
+#: templates/js/translated/bom.js:1340
msgid "Required Quantity"
msgstr "Cantidad requerida"
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:804 templates/js/translated/build.js:1411
-#: templates/js/translated/build.js:2057
+#: templates/js/translated/bom.js:802 templates/js/translated/build.js:1412
+#: templates/js/translated/build.js:2110
#: templates/js/translated/table_filters.js:178
msgid "Available"
msgstr "Disponible"
@@ -7585,7 +7612,7 @@ msgstr "Esto eliminará la asociación entre este artículo de stock y el códig
msgid "Unlink"
msgstr "Desvincular"
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:982
msgid "Remove stock item"
msgstr "Eliminar elemento de stock"
@@ -7640,12 +7667,12 @@ msgid "Download BOM Template"
msgstr "Descargar plantilla BOM"
#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286
-#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518
+#: templates/js/translated/order.js:429 templates/js/translated/tables.js:53
msgid "Format"
msgstr "Formato"
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519
+#: templates/js/translated/order.js:430
msgid "Select file format"
msgstr "Seleccionar formato de archivo"
@@ -7721,275 +7748,307 @@ msgstr "Añadir sustituto"
msgid "Edit BOM Item Substitutes"
msgstr "Editar sustitutos de elementos BOM"
-#: templates/js/translated/bom.js:741
+#: templates/js/translated/bom.js:739
msgid "Substitutes Available"
msgstr "Sustitutos Disponibles"
-#: templates/js/translated/bom.js:745 templates/js/translated/build.js:1393
+#: templates/js/translated/bom.js:743 templates/js/translated/build.js:1394
msgid "Variant stock allowed"
msgstr "Stock de variante permitido"
-#: templates/js/translated/bom.js:750
+#: templates/js/translated/bom.js:748
msgid "Open subassembly"
msgstr "Abrir sub-ensamblaje"
-#: templates/js/translated/bom.js:822
+#: templates/js/translated/bom.js:820
msgid "Substitutes"
msgstr "Sustitutos"
-#: templates/js/translated/bom.js:837
+#: templates/js/translated/bom.js:835
msgid "Purchase Price Range"
msgstr "Rango de Precio de Compra"
-#: templates/js/translated/bom.js:844
+#: templates/js/translated/bom.js:842
msgid "Purchase Price Average"
msgstr "Precio Promedio de Compra"
-#: templates/js/translated/bom.js:893 templates/js/translated/bom.js:982
+#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980
msgid "View BOM"
msgstr "Ver BOM"
-#: templates/js/translated/bom.js:953
+#: templates/js/translated/bom.js:951
msgid "Validate BOM Item"
msgstr "Validar Artículo para el BOM"
-#: templates/js/translated/bom.js:955
+#: templates/js/translated/bom.js:953
msgid "This line has been validated"
msgstr "Esta línea ha sido validada"
-#: templates/js/translated/bom.js:957
+#: templates/js/translated/bom.js:955
msgid "Edit substitute parts"
msgstr "Editar partes sustitutas"
-#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138
+#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143
msgid "Edit BOM Item"
msgstr "Editar Artículo de BOM"
-#: templates/js/translated/bom.js:961 templates/js/translated/bom.js:1121
+#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126
msgid "Delete BOM Item"
msgstr "Eliminar Artículo de BOM"
-#: templates/js/translated/bom.js:1060 templates/js/translated/build.js:1137
+#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1138
msgid "No BOM items found"
msgstr "No se encontraron elementos BOM"
-#: templates/js/translated/bom.js:1116
+#: templates/js/translated/bom.js:1121
msgid "Are you sure you want to delete this BOM item?"
msgstr "¿Está seguro que desea eliminar este elemento BOM?"
-#: templates/js/translated/bom.js:1318 templates/js/translated/build.js:1377
+#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1378
msgid "Required Part"
msgstr "Parte requerida"
-#: templates/js/translated/bom.js:1340
+#: templates/js/translated/bom.js:1345
msgid "Inherited from parent BOM"
msgstr "Heredado de BOM superior"
-#: templates/js/translated/build.js:85
+#: templates/js/translated/build.js:86
msgid "Edit Build Order"
msgstr "Editar Orden de Trabajo"
-#: templates/js/translated/build.js:119
+#: templates/js/translated/build.js:120
msgid "Create Build Order"
msgstr "Crear Orden de Trabajo"
-#: templates/js/translated/build.js:140
+#: templates/js/translated/build.js:141
msgid "Build order is ready to be completed"
msgstr "El pedido de construcción está listo para ser completado"
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:146
msgid "Build Order is incomplete"
msgstr "Orden de construcción incompleta"
-#: templates/js/translated/build.js:173
+#: templates/js/translated/build.js:174
msgid "Complete Build Order"
msgstr "Completar Orden de Construcción"
-#: templates/js/translated/build.js:214 templates/js/translated/stock.js:92
-#: templates/js/translated/stock.js:181
+#: templates/js/translated/build.js:215 templates/js/translated/stock.js:91
+#: templates/js/translated/stock.js:180
msgid "Next available serial number"
msgstr "Siguiente número de serie disponible"
-#: templates/js/translated/build.js:216 templates/js/translated/stock.js:94
-#: templates/js/translated/stock.js:183
+#: templates/js/translated/build.js:217 templates/js/translated/stock.js:93
+#: templates/js/translated/stock.js:182
msgid "Latest serial number"
msgstr "Último número de serie"
-#: templates/js/translated/build.js:225
+#: templates/js/translated/build.js:226
msgid "The Bill of Materials contains trackable parts"
msgstr "La ley de materiales contiene partes rastreables"
-#: templates/js/translated/build.js:226
+#: templates/js/translated/build.js:227
msgid "Build outputs must be generated individually"
msgstr "Las salidas de construcción deben ser generadas individualmente"
-#: templates/js/translated/build.js:234
+#: templates/js/translated/build.js:235
msgid "Trackable parts can have serial numbers specified"
msgstr "Las partes rastreables pueden tener números de serie especificados"
-#: templates/js/translated/build.js:235
+#: templates/js/translated/build.js:236
msgid "Enter serial numbers to generate multiple single build outputs"
msgstr "Introduzca números de serie para generar múltiples salidas de construcción única"
-#: templates/js/translated/build.js:242
+#: templates/js/translated/build.js:243
msgid "Create Build Output"
msgstr "Crear Salida de Trabajo"
-#: templates/js/translated/build.js:273
+#: templates/js/translated/build.js:274
msgid "Allocate stock items to this build output"
msgstr "Asignar elementos de stock a esta salida de trabajo"
-#: templates/js/translated/build.js:284
+#: templates/js/translated/build.js:285
msgid "Unallocate stock from build output"
msgstr "Desasignar stock de la salida de trabajo"
-#: templates/js/translated/build.js:293
+#: templates/js/translated/build.js:294
msgid "Complete build output"
msgstr "Completar salida de trabajo"
-#: templates/js/translated/build.js:301
+#: templates/js/translated/build.js:302
msgid "Delete build output"
msgstr "Eliminar Salida de Trabajo"
-#: templates/js/translated/build.js:324
+#: templates/js/translated/build.js:325
msgid "Are you sure you wish to unallocate stock items from this build?"
msgstr "¿Está seguro que desea desasignar los artículos de stock de este trabajo?"
-#: templates/js/translated/build.js:342
+#: templates/js/translated/build.js:343
msgid "Unallocate Stock Items"
msgstr "Desasignar artículos de stock"
-#: templates/js/translated/build.js:360 templates/js/translated/build.js:508
+#: templates/js/translated/build.js:361 templates/js/translated/build.js:509
msgid "Select Build Outputs"
msgstr "Seleccionar Salida de Trabajo"
-#: templates/js/translated/build.js:361 templates/js/translated/build.js:509
+#: templates/js/translated/build.js:362 templates/js/translated/build.js:510
msgid "At least one build output must be selected"
msgstr "Se debe seleccionar al menos una salida de trabajo"
-#: templates/js/translated/build.js:415 templates/js/translated/build.js:563
+#: templates/js/translated/build.js:416 templates/js/translated/build.js:564
msgid "Output"
msgstr "Salida"
-#: templates/js/translated/build.js:431
+#: templates/js/translated/build.js:432
msgid "Complete Build Outputs"
msgstr "Completar salidas de trabajo"
-#: templates/js/translated/build.js:576
+#: templates/js/translated/build.js:577
msgid "Delete Build Outputs"
msgstr "Eliminar Salidas"
-#: templates/js/translated/build.js:665
+#: templates/js/translated/build.js:666
msgid "No build order allocations found"
msgstr "No se encontraron asignaciones de órdenes de trabajo"
-#: templates/js/translated/build.js:703 templates/js/translated/order.js:1965
+#: templates/js/translated/build.js:704 templates/js/translated/order.js:2053
msgid "Location not specified"
msgstr "Ubicación no especificada"
-#: templates/js/translated/build.js:885
+#: templates/js/translated/build.js:886
msgid "No active build outputs found"
msgstr "No se encontraron salidas de trabajo activas"
-#: templates/js/translated/build.js:1334 templates/js/translated/build.js:2068
-#: templates/js/translated/order.js:2099
+#: templates/js/translated/build.js:1335 templates/js/translated/build.js:2121
+#: templates/js/translated/order.js:2187
msgid "Edit stock allocation"
msgstr "Editar asignación de stock"
-#: templates/js/translated/build.js:1336 templates/js/translated/build.js:2069
-#: templates/js/translated/order.js:2100
+#: templates/js/translated/build.js:1337 templates/js/translated/build.js:2122
+#: templates/js/translated/order.js:2188
msgid "Delete stock allocation"
msgstr "Eliminar asignación de stock"
-#: templates/js/translated/build.js:1354
+#: templates/js/translated/build.js:1355
msgid "Edit Allocation"
msgstr "Editar Asignación"
-#: templates/js/translated/build.js:1364
+#: templates/js/translated/build.js:1365
msgid "Remove Allocation"
msgstr "Quitar asignación"
-#: templates/js/translated/build.js:1389
+#: templates/js/translated/build.js:1390
msgid "Substitute parts available"
msgstr "Piezas sustitutas disponibles"
-#: templates/js/translated/build.js:1406
+#: templates/js/translated/build.js:1407
msgid "Quantity Per"
msgstr "Cantidad por"
-#: templates/js/translated/build.js:1416 templates/js/translated/build.js:1656
-#: templates/js/translated/build.js:2064 templates/js/translated/order.js:2366
+#: templates/js/translated/build.js:1417 templates/js/translated/build.js:1667
+#: templates/js/translated/build.js:2117 templates/js/translated/order.js:2454
msgid "Allocated"
msgstr "Asignadas"
-#: templates/js/translated/build.js:1472 templates/js/translated/order.js:2446
+#: templates/js/translated/build.js:1473 templates/js/translated/order.js:2534
msgid "Build stock"
msgstr "Stock de Trabajo"
-#: templates/js/translated/build.js:1476 templates/stock_table.html:53
+#: templates/js/translated/build.js:1477 templates/stock_table.html:50
msgid "Order stock"
msgstr "Pedido de stock"
-#: templates/js/translated/build.js:1479 templates/js/translated/order.js:2439
+#: templates/js/translated/build.js:1480 templates/js/translated/order.js:2527
msgid "Allocate stock"
msgstr "Asignar stock"
-#: templates/js/translated/build.js:1558 templates/js/translated/order.js:1616
-msgid "Specify stock allocation quantity"
-msgstr "Especificar la cantidad de asignación de stock"
-
-#: templates/js/translated/build.js:1629 templates/js/translated/label.js:134
-#: templates/js/translated/order.js:1667 templates/js/translated/report.js:225
+#: templates/js/translated/build.js:1519 templates/js/translated/label.js:134
+#: templates/js/translated/order.js:1755 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr "Seleccionar partes"
-#: templates/js/translated/build.js:1630 templates/js/translated/order.js:1668
+#: templates/js/translated/build.js:1520 templates/js/translated/order.js:1756
msgid "You must select at least one part to allocate"
msgstr "Debe seleccionar al menos una parte para asignar"
-#: templates/js/translated/build.js:1644 templates/js/translated/order.js:1682
+#: templates/js/translated/build.js:1569 templates/js/translated/order.js:1704
+msgid "Specify stock allocation quantity"
+msgstr "Especificar la cantidad de asignación de stock"
+
+#: templates/js/translated/build.js:1640
+msgid "All Parts Allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:1641
+msgid "All selected parts have been fully allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:1655 templates/js/translated/order.js:1770
msgid "Select source location (leave blank to take from all locations)"
msgstr "Seleccionar ubicación de origen (dejar en blanco para tomar de todas las ubicaciones)"
-#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1717
+#: templates/js/translated/build.js:1684 templates/js/translated/order.js:1805
msgid "Confirm stock allocation"
msgstr "Confirmar asignación de stock"
-#: templates/js/translated/build.js:1674
+#: templates/js/translated/build.js:1685
msgid "Allocate Stock Items to Build Order"
msgstr "Asignar Artículos de Stock a Orden de Trabajo"
-#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1730
+#: templates/js/translated/build.js:1696 templates/js/translated/order.js:1818
msgid "No matching stock locations"
msgstr "No hay ubicaciones de stock coincidentes"
-#: templates/js/translated/build.js:1757 templates/js/translated/order.js:1807
+#: templates/js/translated/build.js:1768 templates/js/translated/order.js:1895
msgid "No matching stock items"
msgstr "No hay artículos de stock coincidentes"
-#: templates/js/translated/build.js:1875
+#: templates/js/translated/build.js:1865
+msgid "Automatic Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1866
+msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
+msgstr ""
+
+#: templates/js/translated/build.js:1868
+msgid "If a location is specifed, stock will only be allocated from that location"
+msgstr ""
+
+#: templates/js/translated/build.js:1869
+msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
+msgstr ""
+
+#: templates/js/translated/build.js:1870
+msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
+msgstr ""
+
+#: templates/js/translated/build.js:1890
+msgid "Allocate Stock Items"
+msgstr ""
+
+#: templates/js/translated/build.js:1928
msgid "No builds matching query"
msgstr "No hay trabajos que coincidan con la consulta"
-#: templates/js/translated/build.js:1892 templates/js/translated/part.js:1235
-#: templates/js/translated/part.js:1646 templates/js/translated/stock.js:1643
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/build.js:1945 templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1647 templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:2567
msgid "Select"
msgstr "Seleccionar"
-#: templates/js/translated/build.js:1912
+#: templates/js/translated/build.js:1965
msgid "Build order is overdue"
msgstr "Orden de trabajo atrasada"
-#: templates/js/translated/build.js:1976 templates/js/translated/stock.js:2823
+#: templates/js/translated/build.js:2029 templates/js/translated/stock.js:2779
msgid "No user information"
msgstr "No hay información de usuario"
-#: templates/js/translated/build.js:1988
+#: templates/js/translated/build.js:2041
msgid "No information"
msgstr "Sin información"
-#: templates/js/translated/build.js:2045
+#: templates/js/translated/build.js:2098
msgid "No parts allocated for"
msgstr "No se asignaron partes para"
@@ -8054,34 +8113,34 @@ msgid "No manufacturer parts found"
msgstr "No se encontraron partes del fabricante"
#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:517
-#: templates/js/translated/part.js:602
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:518
+#: templates/js/translated/part.js:603
msgid "Template part"
msgstr "Plantilla de parte"
#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:521
-#: templates/js/translated/part.js:606
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:522
+#: templates/js/translated/part.js:607
msgid "Assembled part"
msgstr "Parte ensamblada"
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:696
+#: templates/js/translated/company.js:631 templates/js/translated/part.js:697
msgid "No parameters found"
msgstr "No se encontraron parámetros"
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:738
+#: templates/js/translated/company.js:668 templates/js/translated/part.js:739
msgid "Edit parameter"
msgstr "Editar parámetro"
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:739
+#: templates/js/translated/company.js:669 templates/js/translated/part.js:740
msgid "Delete parameter"
msgstr "Eliminar parámetro"
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:756
+#: templates/js/translated/company.js:688 templates/js/translated/part.js:757
msgid "Edit Parameter"
msgstr "Editar parámetro"
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:768
+#: templates/js/translated/company.js:699 templates/js/translated/part.js:769
msgid "Delete Parameter"
msgstr "Eliminar parámetro"
@@ -8090,12 +8149,12 @@ msgid "No supplier parts found"
msgstr "No se encontraron piezas de proveedor"
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:429
+#: templates/js/translated/filters.js:441
msgid "true"
msgstr "verdadero"
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:430
+#: templates/js/translated/filters.js:442
msgid "false"
msgstr "falso"
@@ -8103,19 +8162,23 @@ msgstr "falso"
msgid "Select filter"
msgstr "Seleccionar filtro"
-#: templates/js/translated/filters.js:286
+#: templates/js/translated/filters.js:288
+msgid "Download data"
+msgstr ""
+
+#: templates/js/translated/filters.js:291
msgid "Reload data"
msgstr "Recargar datos"
-#: templates/js/translated/filters.js:290
+#: templates/js/translated/filters.js:295
msgid "Add new filter"
msgstr "Añadir un nuevo filtro"
-#: templates/js/translated/filters.js:293
+#: templates/js/translated/filters.js:298
msgid "Clear all filters"
msgstr "Limpiar todos los filtros"
-#: templates/js/translated/filters.js:338
+#: templates/js/translated/filters.js:350
msgid "Create filter"
msgstr "Crear filtro"
@@ -8186,7 +8249,7 @@ msgid "NO"
msgstr "NO"
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1050
+#: templates/js/translated/stock.js:1006
msgid "Select Stock Items"
msgstr "Seleccionar elementos de stock"
@@ -8359,206 +8422,214 @@ msgstr "Añadir Cliente"
msgid "Create Sales Order"
msgstr "Crear Orden de Venta"
-#: templates/js/translated/order.js:366
+#: templates/js/translated/order.js:426
msgid "Export Order"
msgstr "Exportar Orden"
-#: templates/js/translated/order.js:460
+#: templates/js/translated/order.js:520
msgid "Select Line Items"
msgstr "Seleccionar Artículos de Línea"
-#: templates/js/translated/order.js:461
+#: templates/js/translated/order.js:521
msgid "At least one line item must be selected"
msgstr "Debe seleccionar al menos un elemento de línea"
-#: templates/js/translated/order.js:481 templates/js/translated/order.js:580
+#: templates/js/translated/order.js:541 templates/js/translated/order.js:640
msgid "Add batch code"
msgstr ""
-#: templates/js/translated/order.js:487 templates/js/translated/order.js:591
+#: templates/js/translated/order.js:547 templates/js/translated/order.js:651
msgid "Add serial numbers"
msgstr ""
-#: templates/js/translated/order.js:499
+#: templates/js/translated/order.js:559
msgid "Quantity to receive"
msgstr "Cantidad a recibir"
-#: templates/js/translated/order.js:563 templates/js/translated/stock.js:2263
+#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2219
msgid "Stock Status"
msgstr "Estado del Stock"
-#: templates/js/translated/order.js:652
+#: templates/js/translated/order.js:712
msgid "Order Code"
msgstr "Código de Pedido"
-#: templates/js/translated/order.js:653
+#: templates/js/translated/order.js:713
msgid "Ordered"
msgstr "Pedido"
-#: templates/js/translated/order.js:655
+#: templates/js/translated/order.js:715
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/order.js:674
+#: templates/js/translated/order.js:734
msgid "Confirm receipt of items"
msgstr "Confirmar recepción de artículos"
-#: templates/js/translated/order.js:675
+#: templates/js/translated/order.js:735
msgid "Receive Purchase Order Items"
msgstr "Recibir artículos de orden de compra"
-#: templates/js/translated/order.js:865 templates/js/translated/part.js:809
+#: templates/js/translated/order.js:925 templates/js/translated/part.js:810
msgid "No purchase orders found"
msgstr "No se encontraron órdenes de compra"
-#: templates/js/translated/order.js:890 templates/js/translated/order.js:1338
+#: templates/js/translated/order.js:950 templates/js/translated/order.js:1426
msgid "Order is overdue"
msgstr "El pedido está vencido"
-#: templates/js/translated/order.js:1018 templates/js/translated/order.js:2496
+#: templates/js/translated/order.js:1074 templates/js/translated/order.js:2585
+msgid "Duplicate Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:1104 templates/js/translated/order.js:2607
msgid "Edit Line Item"
msgstr "Editar Ítem de Línea"
-#: templates/js/translated/order.js:1030 templates/js/translated/order.js:2507
+#: templates/js/translated/order.js:1117 templates/js/translated/order.js:2618
msgid "Delete Line Item"
msgstr "Eliminar Ítemde Línea"
-#: templates/js/translated/order.js:1073
+#: templates/js/translated/order.js:1160
msgid "No line items found"
msgstr "No hay elementos de línea"
-#: templates/js/translated/order.js:1100 templates/js/translated/order.js:2255
+#: templates/js/translated/order.js:1187 templates/js/translated/order.js:2343
msgid "Total"
msgstr "Total"
-#: templates/js/translated/order.js:1154 templates/js/translated/order.js:2280
-#: templates/js/translated/part.js:1863 templates/js/translated/part.js:2074
+#: templates/js/translated/order.js:1241 templates/js/translated/order.js:2368
+#: templates/js/translated/part.js:1864 templates/js/translated/part.js:2075
msgid "Unit Price"
msgstr "Precio Unitario"
-#: templates/js/translated/order.js:1169 templates/js/translated/order.js:2296
+#: templates/js/translated/order.js:1256 templates/js/translated/order.js:2384
msgid "Total Price"
msgstr "Precio Total"
-#: templates/js/translated/order.js:1210 templates/js/translated/order.js:2338
-#: templates/js/translated/part.js:918
+#: templates/js/translated/order.js:1297 templates/js/translated/order.js:2426
+#: templates/js/translated/part.js:919
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:1269 templates/js/translated/part.js:964
+#: templates/js/translated/order.js:1356 templates/js/translated/part.js:965
msgid "Receive line item"
msgstr "Recibir ítem de línea"
-#: templates/js/translated/order.js:1273 templates/js/translated/order.js:2452
+#: templates/js/translated/order.js:1360 templates/js/translated/order.js:2540
+msgid "Duplicate line item"
+msgstr ""
+
+#: templates/js/translated/order.js:1361 templates/js/translated/order.js:2541
msgid "Edit line item"
msgstr "Editar elemento de línea"
-#: templates/js/translated/order.js:1274 templates/js/translated/order.js:2456
+#: templates/js/translated/order.js:1362 templates/js/translated/order.js:2545
msgid "Delete line item"
msgstr "Eliminar elemento de línea"
-#: templates/js/translated/order.js:1314
+#: templates/js/translated/order.js:1402
msgid "No sales orders found"
msgstr "No se encontraron ventas"
-#: templates/js/translated/order.js:1352
+#: templates/js/translated/order.js:1440
msgid "Invalid Customer"
msgstr "Cliente Inválido"
-#: templates/js/translated/order.js:1439
+#: templates/js/translated/order.js:1527
msgid "Edit shipment"
msgstr "Editar envío"
-#: templates/js/translated/order.js:1442
+#: templates/js/translated/order.js:1530
msgid "Complete shipment"
msgstr "Completar envío"
-#: templates/js/translated/order.js:1447
+#: templates/js/translated/order.js:1535
msgid "Delete shipment"
msgstr "Eliminar envío"
-#: templates/js/translated/order.js:1467
+#: templates/js/translated/order.js:1555
msgid "Edit Shipment"
msgstr "Editar envío"
-#: templates/js/translated/order.js:1484
+#: templates/js/translated/order.js:1572
msgid "Delete Shipment"
msgstr "Eliminar Envío"
-#: templates/js/translated/order.js:1518
+#: templates/js/translated/order.js:1606
msgid "No matching shipments found"
msgstr "No se encontraron envíos coincidentes"
-#: templates/js/translated/order.js:1528
+#: templates/js/translated/order.js:1616
msgid "Shipment Reference"
msgstr "Referencia de Envío"
-#: templates/js/translated/order.js:1552
+#: templates/js/translated/order.js:1640
msgid "Not shipped"
msgstr "No enviado"
-#: templates/js/translated/order.js:1558
+#: templates/js/translated/order.js:1646
msgid "Tracking"
msgstr "Seguimiento"
-#: templates/js/translated/order.js:1718
+#: templates/js/translated/order.js:1806
msgid "Allocate Stock Items to Sales Order"
msgstr "Asignar artículos de stock a pedido de venta"
-#: templates/js/translated/order.js:1926
+#: templates/js/translated/order.js:2014
msgid "No sales order allocations found"
msgstr "No se encontraron asignaciones de órdenes"
-#: templates/js/translated/order.js:2015
+#: templates/js/translated/order.js:2103
msgid "Edit Stock Allocation"
msgstr "Editar Asignación de Stock"
-#: templates/js/translated/order.js:2032
+#: templates/js/translated/order.js:2120
msgid "Confirm Delete Operation"
msgstr "Confirmar Operación de Eliminar"
-#: templates/js/translated/order.js:2033
+#: templates/js/translated/order.js:2121
msgid "Delete Stock Allocation"
msgstr "Eliminar Adjudicación de Stock"
-#: templates/js/translated/order.js:2076 templates/js/translated/order.js:2165
-#: templates/js/translated/stock.js:1559
+#: templates/js/translated/order.js:2164 templates/js/translated/order.js:2253
+#: templates/js/translated/stock.js:1515
msgid "Shipped to customer"
msgstr "Enviado al cliente"
-#: templates/js/translated/order.js:2084 templates/js/translated/order.js:2174
+#: templates/js/translated/order.js:2172 templates/js/translated/order.js:2262
msgid "Stock location not specified"
msgstr "Ubicación de stock no especificada"
-#: templates/js/translated/order.js:2436
+#: templates/js/translated/order.js:2524
msgid "Allocate serial numbers"
msgstr "Asignar números de serie"
-#: templates/js/translated/order.js:2442
+#: templates/js/translated/order.js:2530
msgid "Purchase stock"
msgstr "Comprar stock"
-#: templates/js/translated/order.js:2449 templates/js/translated/order.js:2616
+#: templates/js/translated/order.js:2537 templates/js/translated/order.js:2727
msgid "Calculate price"
msgstr "Calcular precio"
-#: templates/js/translated/order.js:2460
+#: templates/js/translated/order.js:2549
msgid "Cannot be deleted as items have been shipped"
msgstr "No se puede eliminar ya que los artículos han sido enviados"
-#: templates/js/translated/order.js:2463
+#: templates/js/translated/order.js:2552
msgid "Cannot be deleted as items have been allocated"
msgstr "No se puede eliminar ya que los elementos han sido asignados"
-#: templates/js/translated/order.js:2522
+#: templates/js/translated/order.js:2633
msgid "Allocate Serial Numbers"
msgstr "Asignar Números de Serie"
-#: templates/js/translated/order.js:2624
+#: templates/js/translated/order.js:2735
msgid "Update Unit Price"
msgstr "Actualizar Precio Unitario"
-#: templates/js/translated/order.js:2638
+#: templates/js/translated/order.js:2749
msgid "No matching line items"
msgstr "No hay elementos de línea coincidentes"
@@ -8682,117 +8753,117 @@ msgstr "Validar la Factura de Materiales"
msgid "Validated Bill of Materials"
msgstr "Validación de Lista de Materiales"
-#: templates/js/translated/part.js:481
+#: templates/js/translated/part.js:482
msgid "Copy Bill of Materials"
msgstr "Copiar Factura de Materiales"
-#: templates/js/translated/part.js:509 templates/js/translated/part.js:594
+#: templates/js/translated/part.js:510 templates/js/translated/part.js:595
msgid "Trackable part"
msgstr "Parte Rastreable"
-#: templates/js/translated/part.js:513 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:514 templates/js/translated/part.js:599
msgid "Virtual part"
msgstr "Parte virtual"
-#: templates/js/translated/part.js:525
+#: templates/js/translated/part.js:526
msgid "Subscribed part"
msgstr "Parte suscrita"
-#: templates/js/translated/part.js:529
+#: templates/js/translated/part.js:530
msgid "Salable part"
msgstr "Pieza vendible"
-#: templates/js/translated/part.js:644
+#: templates/js/translated/part.js:645
msgid "No variants found"
msgstr "No se encontraron variantes"
-#: templates/js/translated/part.js:1034
+#: templates/js/translated/part.js:1035
msgid "Delete part relationship"
msgstr "Eliminar relación de parte"
-#: templates/js/translated/part.js:1058
+#: templates/js/translated/part.js:1059
msgid "Delete Part Relationship"
msgstr "Eliminar Relación de Parte"
-#: templates/js/translated/part.js:1125 templates/js/translated/part.js:1385
+#: templates/js/translated/part.js:1126 templates/js/translated/part.js:1386
msgid "No parts found"
msgstr "No se encontraron partes"
-#: templates/js/translated/part.js:1295
+#: templates/js/translated/part.js:1296
msgid "No category"
msgstr "Sin categoría"
-#: templates/js/translated/part.js:1318
+#: templates/js/translated/part.js:1319
#: templates/js/translated/table_filters.js:425
msgid "Low stock"
msgstr "Stock bajo"
-#: templates/js/translated/part.js:1409 templates/js/translated/part.js:1581
-#: templates/js/translated/stock.js:2572
+#: templates/js/translated/part.js:1410 templates/js/translated/part.js:1582
+#: templates/js/translated/stock.js:2528
msgid "Display as list"
msgstr "Mostrar como lista"
-#: templates/js/translated/part.js:1425
+#: templates/js/translated/part.js:1426
msgid "Display as grid"
msgstr "Mostrar como cuadrícula"
-#: templates/js/translated/part.js:1600 templates/js/translated/stock.js:2591
+#: templates/js/translated/part.js:1601 templates/js/translated/stock.js:2547
msgid "Display as tree"
msgstr "Mostrar como árbol"
-#: templates/js/translated/part.js:1664
+#: templates/js/translated/part.js:1665
msgid "Subscribed category"
msgstr "Categoría suscrita"
-#: templates/js/translated/part.js:1678 templates/js/translated/stock.js:2635
+#: templates/js/translated/part.js:1679 templates/js/translated/stock.js:2591
msgid "Path"
msgstr "Ruta"
-#: templates/js/translated/part.js:1722
+#: templates/js/translated/part.js:1723
msgid "No test templates matching query"
msgstr "No hay plantillas de prueba que coincidan con la consulta"
-#: templates/js/translated/part.js:1773 templates/js/translated/stock.js:1270
+#: templates/js/translated/part.js:1774 templates/js/translated/stock.js:1226
msgid "Edit test result"
msgstr "Editar resultado de prueba"
-#: templates/js/translated/part.js:1774 templates/js/translated/stock.js:1271
-#: templates/js/translated/stock.js:1517
+#: templates/js/translated/part.js:1775 templates/js/translated/stock.js:1227
+#: templates/js/translated/stock.js:1473
msgid "Delete test result"
msgstr "Eliminar resultado de prueba"
-#: templates/js/translated/part.js:1780
+#: templates/js/translated/part.js:1781
msgid "This test is defined for a parent part"
msgstr "Esta prueba está definida para una parte principal"
-#: templates/js/translated/part.js:1802
+#: templates/js/translated/part.js:1803
msgid "Edit Test Result Template"
msgstr "Editar plantilla de resultado de prueba"
-#: templates/js/translated/part.js:1816
+#: templates/js/translated/part.js:1817
msgid "Delete Test Result Template"
msgstr "Eliminar plantilla de resultados de prueba"
-#: templates/js/translated/part.js:1841
+#: templates/js/translated/part.js:1842
#, python-brace-format
msgid "No ${human_name} information found"
msgstr "No se encontró información de ${human_name}"
-#: templates/js/translated/part.js:1896
+#: templates/js/translated/part.js:1897
#, python-brace-format
msgid "Edit ${human_name}"
msgstr "Editar ${human_name}"
-#: templates/js/translated/part.js:1897
+#: templates/js/translated/part.js:1898
#, python-brace-format
msgid "Delete ${human_name}"
msgstr "Eliminar ${human_name}"
-#: templates/js/translated/part.js:1998
+#: templates/js/translated/part.js:1999
msgid "Single Price"
msgstr "Precio Único"
-#: templates/js/translated/part.js:2017
+#: templates/js/translated/part.js:2018
msgid "Single Price Difference"
msgstr "Diferencia de Precio Único"
@@ -8866,368 +8937,356 @@ msgstr "Seleccionar Pedidos de Venta"
msgid "Sales Order(s) must be selected before printing report"
msgstr "Pedido(s) de venta debe ser seleccionado antes de imprimir el informe"
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr "Serializar Artículo de Stock"
-#: templates/js/translated/stock.js:102
+#: templates/js/translated/stock.js:101
msgid "Confirm Stock Serialization"
msgstr "Confirmar Serialización de Stock"
-#: templates/js/translated/stock.js:111
+#: templates/js/translated/stock.js:110
msgid "Parent stock location"
msgstr "Ubicación del stock principal"
-#: templates/js/translated/stock.js:154
+#: templates/js/translated/stock.js:153
msgid "New Stock Location"
msgstr "Nueva Ubicación de Stock"
-#: templates/js/translated/stock.js:194
+#: templates/js/translated/stock.js:193
msgid "This part cannot be serialized"
msgstr "Esta parte no se puede serializar"
-#: templates/js/translated/stock.js:233
+#: templates/js/translated/stock.js:232
msgid "Enter initial quantity for this stock item"
msgstr "Introduzca la cantidad inicial para este artículo de stock"
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/stock.js:238
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr "Introduzca números de serie para el nuevo stock (o deje en blanco)"
-#: templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:381
msgid "Created new stock item"
msgstr "Crear nuevo artículo de stock"
-#: templates/js/translated/stock.js:395
+#: templates/js/translated/stock.js:394
msgid "Created multiple stock items"
msgstr "Creados varios artículos de stock"
-#: templates/js/translated/stock.js:420
+#: templates/js/translated/stock.js:419
msgid "Find Serial Number"
msgstr "Encontrar número serial"
-#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425
+#: templates/js/translated/stock.js:423 templates/js/translated/stock.js:424
msgid "Enter serial number"
msgstr "Introducir número de serie"
-#: templates/js/translated/stock.js:441
+#: templates/js/translated/stock.js:440
msgid "Enter a serial number"
msgstr "Introducir un número de serie"
-#: templates/js/translated/stock.js:461
+#: templates/js/translated/stock.js:460
msgid "No matching serial number"
msgstr "Ningún número de serie coincidente"
-#: templates/js/translated/stock.js:470
+#: templates/js/translated/stock.js:469
msgid "More than one matching result found"
msgstr "Más de un resultado encontrado"
-#: templates/js/translated/stock.js:515
-msgid "Export Stock"
-msgstr "Exportar Stock"
-
-#: templates/js/translated/stock.js:526
-msgid "Include Sublocations"
-msgstr "Incluir sub-ubicación"
-
-#: templates/js/translated/stock.js:527
-msgid "Include stock items in sublocations"
-msgstr "Incluye artículos de stock en sub-ubicaciones"
-
-#: templates/js/translated/stock.js:636
+#: templates/js/translated/stock.js:592
msgid "Confirm stock assignment"
msgstr "Confirmar asignación de stock"
-#: templates/js/translated/stock.js:637
+#: templates/js/translated/stock.js:593
msgid "Assign Stock to Customer"
msgstr "Asignar Stock al Cliente"
-#: templates/js/translated/stock.js:714
+#: templates/js/translated/stock.js:670
msgid "Warning: Merge operation cannot be reversed"
msgstr "Advertencia: La operación de fusión no puede ser revertida"
-#: templates/js/translated/stock.js:715
+#: templates/js/translated/stock.js:671
msgid "Some information will be lost when merging stock items"
msgstr "Alguna información se perderá al combinar artículos de stock"
-#: templates/js/translated/stock.js:717
+#: templates/js/translated/stock.js:673
msgid "Stock transaction history will be deleted for merged items"
msgstr "Se eliminará el historial de transacciones de stock para elementos fusionados"
-#: templates/js/translated/stock.js:718
+#: templates/js/translated/stock.js:674
msgid "Supplier part information will be deleted for merged items"
msgstr "La información de la pieza del proveedor se eliminará para los artículos fusionados"
-#: templates/js/translated/stock.js:804
+#: templates/js/translated/stock.js:760
msgid "Confirm stock item merge"
msgstr "Confirmar fusión de artículos de stock"
-#: templates/js/translated/stock.js:805
+#: templates/js/translated/stock.js:761
msgid "Merge Stock Items"
msgstr "Fusionar Artículos de Stock"
-#: templates/js/translated/stock.js:900
+#: templates/js/translated/stock.js:856
msgid "Transfer Stock"
msgstr "Transferir Stock"
-#: templates/js/translated/stock.js:901
+#: templates/js/translated/stock.js:857
msgid "Move"
msgstr "Mover"
-#: templates/js/translated/stock.js:907
+#: templates/js/translated/stock.js:863
msgid "Count Stock"
msgstr "Contar Stock"
-#: templates/js/translated/stock.js:908
+#: templates/js/translated/stock.js:864
msgid "Count"
msgstr "Contar"
-#: templates/js/translated/stock.js:912
+#: templates/js/translated/stock.js:868
msgid "Remove Stock"
msgstr "Eliminar Stock"
-#: templates/js/translated/stock.js:913
+#: templates/js/translated/stock.js:869
msgid "Take"
msgstr "Tomar"
-#: templates/js/translated/stock.js:917
+#: templates/js/translated/stock.js:873
msgid "Add Stock"
msgstr "Añadir Stock"
-#: templates/js/translated/stock.js:918 users/models.py:213
+#: templates/js/translated/stock.js:874 users/models.py:213
msgid "Add"
msgstr "Añadir"
-#: templates/js/translated/stock.js:922
+#: templates/js/translated/stock.js:878
msgid "Delete Stock"
msgstr "Eliminar Stock"
-#: templates/js/translated/stock.js:1011
+#: templates/js/translated/stock.js:967
msgid "Quantity cannot be adjusted for serialized stock"
msgstr "La cantidad no se puede ajustar para el stock serializado"
-#: templates/js/translated/stock.js:1011
+#: templates/js/translated/stock.js:967
msgid "Specify stock quantity"
msgstr "Especificar cantidad de stock"
-#: templates/js/translated/stock.js:1051
+#: templates/js/translated/stock.js:1007
msgid "You must select at least one available stock item"
msgstr "Debe seleccionar al menos un artículo de stock disponible"
-#: templates/js/translated/stock.js:1209
+#: templates/js/translated/stock.js:1165
msgid "PASS"
msgstr "PASA"
-#: templates/js/translated/stock.js:1211
+#: templates/js/translated/stock.js:1167
msgid "FAIL"
msgstr "FALLO"
-#: templates/js/translated/stock.js:1216
+#: templates/js/translated/stock.js:1172
msgid "NO RESULT"
msgstr "SIN RESULTADO"
-#: templates/js/translated/stock.js:1263
+#: templates/js/translated/stock.js:1219
msgid "Pass test"
msgstr "Pruebas pasadas"
-#: templates/js/translated/stock.js:1266
+#: templates/js/translated/stock.js:1222
msgid "Add test result"
msgstr "Añadir resultado de prueba"
-#: templates/js/translated/stock.js:1292
+#: templates/js/translated/stock.js:1248
msgid "No test results found"
msgstr "No se encontraron resultados de prueba"
-#: templates/js/translated/stock.js:1348
+#: templates/js/translated/stock.js:1304
msgid "Test Date"
msgstr "Fecha de Prueba"
-#: templates/js/translated/stock.js:1500
+#: templates/js/translated/stock.js:1456
msgid "Edit Test Result"
msgstr "Editar Resultados de Prueba"
-#: templates/js/translated/stock.js:1522
+#: templates/js/translated/stock.js:1478
msgid "Delete Test Result"
msgstr "Borrar Resultado de Prueba"
-#: templates/js/translated/stock.js:1551
+#: templates/js/translated/stock.js:1507
msgid "In production"
msgstr "En producción"
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1511
msgid "Installed in Stock Item"
msgstr "Instalado en el artículo de stock"
-#: templates/js/translated/stock.js:1563
+#: templates/js/translated/stock.js:1519
msgid "Assigned to Sales Order"
msgstr "Asignado a la Orden de Venta"
-#: templates/js/translated/stock.js:1569
+#: templates/js/translated/stock.js:1525
msgid "No stock location set"
msgstr "Ninguna ubicación de stock establecida"
-#: templates/js/translated/stock.js:1727
+#: templates/js/translated/stock.js:1683
msgid "Stock item is in production"
msgstr "El artículo de stock está en producción"
-#: templates/js/translated/stock.js:1732
+#: templates/js/translated/stock.js:1688
msgid "Stock item assigned to sales order"
msgstr "Artículo de stock asignado al pedido de venta"
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1691
msgid "Stock item assigned to customer"
msgstr "Artículo de stock asignado al cliente"
-#: templates/js/translated/stock.js:1739
+#: templates/js/translated/stock.js:1695
msgid "Stock item has expired"
msgstr "Artículo de stock ha caducado"
-#: templates/js/translated/stock.js:1741
+#: templates/js/translated/stock.js:1697
msgid "Stock item will expire soon"
msgstr "El artículo de stock caducará pronto"
-#: templates/js/translated/stock.js:1747
+#: templates/js/translated/stock.js:1703
msgid "Serialized stock item has been allocated"
msgstr "Se ha asignado un artículo de stock serializado"
-#: templates/js/translated/stock.js:1749
+#: templates/js/translated/stock.js:1705
msgid "Stock item has been fully allocated"
msgstr "Artículo de stock ha sido completamente asignado"
-#: templates/js/translated/stock.js:1751
+#: templates/js/translated/stock.js:1707
msgid "Stock item has been partially allocated"
msgstr "Artículo de stock ha sido asignado parcialmente"
-#: templates/js/translated/stock.js:1756
+#: templates/js/translated/stock.js:1712
msgid "Stock item has been installed in another item"
msgstr "Artículo de stock ha sido instalado en otro artículo"
-#: templates/js/translated/stock.js:1763
+#: templates/js/translated/stock.js:1719
msgid "Stock item has been rejected"
msgstr "Artículo de stock ha sido rechazado"
-#: templates/js/translated/stock.js:1765
+#: templates/js/translated/stock.js:1721
msgid "Stock item is lost"
msgstr "Artículo de stock perdido"
-#: templates/js/translated/stock.js:1767
+#: templates/js/translated/stock.js:1723
msgid "Stock item is destroyed"
msgstr "Artículo de stock destruido"
-#: templates/js/translated/stock.js:1771
+#: templates/js/translated/stock.js:1727
#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr "Agotado"
-#: templates/js/translated/stock.js:1821
+#: templates/js/translated/stock.js:1777
msgid "Stocktake"
msgstr "Inventario"
-#: templates/js/translated/stock.js:1903
+#: templates/js/translated/stock.js:1859
msgid "Supplier part not specified"
msgstr "Parte del proveedor no especificada"
-#: templates/js/translated/stock.js:1941
+#: templates/js/translated/stock.js:1897
msgid "No stock items matching query"
msgstr "No hay artículos de stock que coincidan con la consulta"
-#: templates/js/translated/stock.js:1962 templates/js/translated/stock.js:2010
+#: templates/js/translated/stock.js:1918 templates/js/translated/stock.js:1966
msgid "items"
msgstr "elementos"
-#: templates/js/translated/stock.js:2050
+#: templates/js/translated/stock.js:2006
msgid "batches"
msgstr "lotes"
-#: templates/js/translated/stock.js:2077
+#: templates/js/translated/stock.js:2033
msgid "locations"
msgstr "ubicaciones"
-#: templates/js/translated/stock.js:2079
+#: templates/js/translated/stock.js:2035
msgid "Undefined location"
msgstr "Ubicación indefinida"
-#: templates/js/translated/stock.js:2278
+#: templates/js/translated/stock.js:2234
msgid "Set Stock Status"
msgstr "Establecer estado de stock"
-#: templates/js/translated/stock.js:2292
+#: templates/js/translated/stock.js:2248
msgid "Select Status Code"
msgstr "Seleccionar Código de Estado"
-#: templates/js/translated/stock.js:2293
+#: templates/js/translated/stock.js:2249
msgid "Status code must be selected"
msgstr "Debe seleccionar el código de estado"
-#: templates/js/translated/stock.js:2472
+#: templates/js/translated/stock.js:2428
msgid "Allocated Quantity"
msgstr "Cantidad Asignada"
-#: templates/js/translated/stock.js:2682
+#: templates/js/translated/stock.js:2638
msgid "Details"
msgstr "Detalles"
-#: templates/js/translated/stock.js:2707
+#: templates/js/translated/stock.js:2663
msgid "Location no longer exists"
msgstr "Ubicación ya no existe"
-#: templates/js/translated/stock.js:2726
+#: templates/js/translated/stock.js:2682
msgid "Purchase order no longer exists"
msgstr "La orden de compra ya no existe"
-#: templates/js/translated/stock.js:2745
+#: templates/js/translated/stock.js:2701
msgid "Customer no longer exists"
msgstr "El cliente ya no existe"
-#: templates/js/translated/stock.js:2763
+#: templates/js/translated/stock.js:2719
msgid "Stock item no longer exists"
msgstr "Artículo de stock ya no existe"
-#: templates/js/translated/stock.js:2786
+#: templates/js/translated/stock.js:2742
msgid "Added"
msgstr "Añadido"
-#: templates/js/translated/stock.js:2794
+#: templates/js/translated/stock.js:2750
msgid "Removed"
msgstr "Eliminado"
-#: templates/js/translated/stock.js:2835
+#: templates/js/translated/stock.js:2791
msgid "Edit tracking entry"
msgstr "Editar entrada de rastreo"
-#: templates/js/translated/stock.js:2836
+#: templates/js/translated/stock.js:2792
msgid "Delete tracking entry"
msgstr "Eliminar entrada de rastreo"
-#: templates/js/translated/stock.js:2887
+#: templates/js/translated/stock.js:2843
msgid "No installed items"
msgstr "Ningún elemento instalado"
-#: templates/js/translated/stock.js:2938
+#: templates/js/translated/stock.js:2894
msgid "Uninstall Stock Item"
msgstr "Desinstalar elemento de stock"
-#: templates/js/translated/stock.js:2974
+#: templates/js/translated/stock.js:2930
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2975
+#: templates/js/translated/stock.js:2931
msgid "Stock items can only be installed if they meet the following criteria"
msgstr "Los artículos de stock sólo pueden ser instalados si cumplen con los siguientes criterios"
-#: templates/js/translated/stock.js:2977
+#: templates/js/translated/stock.js:2933
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2978
+#: templates/js/translated/stock.js:2934
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2979
+#: templates/js/translated/stock.js:2935
msgid "The Stock Item is serialized and does not belong to another item"
msgstr "El artículo de stock está serializado y no pertenece a otro artículo"
-#: templates/js/translated/stock.js:2992
+#: templates/js/translated/stock.js:2948
msgid "Select part to install"
msgstr ""
@@ -9434,60 +9493,68 @@ msgstr "Stock disponible"
msgid "Purchasable"
msgstr "Comprable"
-#: templates/js/translated/tables.js:368
+#: templates/js/translated/tables.js:50
+msgid "Export Table Data"
+msgstr ""
+
+#: templates/js/translated/tables.js:54
+msgid "Select File Format"
+msgstr ""
+
+#: templates/js/translated/tables.js:433
msgid "Loading data"
msgstr "Cargando datos"
-#: templates/js/translated/tables.js:371
+#: templates/js/translated/tables.js:436
msgid "rows per page"
msgstr "filas por página"
-#: templates/js/translated/tables.js:376
+#: templates/js/translated/tables.js:441
msgid "Showing all rows"
msgstr "Mostrar todas las filas"
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "Showing"
msgstr "Mostrando"
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "to"
msgstr "para"
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "of"
msgstr "de"
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "rows"
msgstr "filas"
-#: templates/js/translated/tables.js:382 templates/search_form.html:6
+#: templates/js/translated/tables.js:447 templates/search_form.html:6
#: templates/search_form.html:7
msgid "Search"
msgstr "Buscar"
-#: templates/js/translated/tables.js:385
+#: templates/js/translated/tables.js:450
msgid "No matching results"
msgstr "No se encontraron resultados"
-#: templates/js/translated/tables.js:388
+#: templates/js/translated/tables.js:453
msgid "Hide/Show pagination"
msgstr "Ocultar/Mostrar paginación"
-#: templates/js/translated/tables.js:391
+#: templates/js/translated/tables.js:456
msgid "Refresh"
msgstr "Actualizar"
-#: templates/js/translated/tables.js:394
+#: templates/js/translated/tables.js:459
msgid "Toggle"
msgstr "Alternar"
-#: templates/js/translated/tables.js:397
+#: templates/js/translated/tables.js:462
msgid "Columns"
msgstr "Columnas"
-#: templates/js/translated/tables.js:400
+#: templates/js/translated/tables.js:465
msgid "All"
msgstr "Todo"
@@ -9591,63 +9658,59 @@ msgstr "Configuración de Email"
msgid "Email settings not configured"
msgstr "Configuración de correo no configurada"
-#: templates/stock_table.html:14
-msgid "Export Stock Information"
-msgstr "Exportar información de stock"
-
-#: templates/stock_table.html:20
+#: templates/stock_table.html:17
msgid "Barcode Actions"
msgstr "Acciones de código de barras"
-#: templates/stock_table.html:36
+#: templates/stock_table.html:33
msgid "Print test reports"
msgstr "Imprimir informes de prueba"
-#: templates/stock_table.html:43
+#: templates/stock_table.html:40
msgid "Stock Options"
msgstr "Opciones Stock"
-#: templates/stock_table.html:48
+#: templates/stock_table.html:45
msgid "Add to selected stock items"
msgstr "Añadir a los elementos de stock seleccionados"
-#: templates/stock_table.html:49
+#: templates/stock_table.html:46
msgid "Remove from selected stock items"
msgstr "Eliminar de los elementos de stock seleccionados"
-#: templates/stock_table.html:50
+#: templates/stock_table.html:47
msgid "Stocktake selected stock items"
msgstr "Artículos de stock seleccionados"
-#: templates/stock_table.html:51
+#: templates/stock_table.html:48
msgid "Move selected stock items"
msgstr "Mover elementos de stock seleccionados"
-#: templates/stock_table.html:52
+#: templates/stock_table.html:49
msgid "Merge selected stock items"
msgstr "Combinar artículos de stock seleccionados"
-#: templates/stock_table.html:52
+#: templates/stock_table.html:49
msgid "Merge stock"
msgstr "Fusionar stock"
-#: templates/stock_table.html:53
+#: templates/stock_table.html:50
msgid "Order selected items"
msgstr "Ordenar artículos seleccionados"
-#: templates/stock_table.html:55
+#: templates/stock_table.html:52
msgid "Change status"
msgstr "Cambiar estado"
-#: templates/stock_table.html:55
+#: templates/stock_table.html:52
msgid "Change stock status"
msgstr "Cambiar estado de stock"
-#: templates/stock_table.html:58
+#: templates/stock_table.html:55
msgid "Delete selected items"
msgstr "Eliminar elementos seleccionados"
-#: templates/stock_table.html:58
+#: templates/stock_table.html:55
msgid "Delete stock"
msgstr ""
diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po
index 9fb3da2098..8ab8d2788f 100644
--- a/InvenTree/locale/fr/LC_MESSAGES/django.po
+++ b/InvenTree/locale/fr/LC_MESSAGES/django.po
@@ -1,10 +1,10 @@
-#: templates/js/translated/order.js:2090
+#: templates/js/translated/order.js:2178
msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-03-01 13:34+0000\n"
-"PO-Revision-Date: 2022-03-01 14:09\n"
+"POT-Creation-Date: 2022-03-07 04:31+0000\n"
+"PO-Revision-Date: 2022-03-07 04:47\n"
"Last-Translator: \n"
"Language-Team: French\n"
"Language: fr_FR\n"
@@ -86,7 +86,7 @@ msgid "Duplicate serial: {sn}"
msgstr ""
#: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435
-#: stock/views.py:1101
+#: stock/views.py:983
msgid "Invalid quantity provided"
msgstr "Quantité fournie invalide"
@@ -114,100 +114,100 @@ msgstr "Aucun numéro de série trouvé"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Le nombre de numéros de série uniques ({s}) doit correspondre à la quantité ({q})"
-#: InvenTree/models.py:176
+#: InvenTree/models.py:185
msgid "Missing file"
msgstr "Fichier manquant"
-#: InvenTree/models.py:177
+#: InvenTree/models.py:186
msgid "Missing external link"
msgstr "Lien externe manquant"
-#: InvenTree/models.py:188 stock/models.py:2071
+#: InvenTree/models.py:197 stock/models.py:2123
#: templates/js/translated/attachment.js:119
msgid "Attachment"
msgstr "Pièce jointe"
-#: InvenTree/models.py:189
+#: InvenTree/models.py:198
msgid "Select file to attach"
msgstr "Sélectionnez un fichier à joindre"
-#: InvenTree/models.py:195 company/models.py:131 company/models.py:348
+#: InvenTree/models.py:204 company/models.py:131 company/models.py:348
#: company/models.py:564 order/models.py:127 part/models.py:860
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1346
+#: templates/js/translated/company.js:829 templates/js/translated/part.js:1347
msgid "Link"
msgstr "Lien"
-#: InvenTree/models.py:196 build/models.py:330 part/models.py:861
-#: stock/models.py:566
+#: InvenTree/models.py:205 build/models.py:332 part/models.py:861
+#: stock/models.py:618
msgid "Link to external URL"
msgstr "Lien vers une url externe"
-#: InvenTree/models.py:199 templates/js/translated/attachment.js:163
+#: InvenTree/models.py:208 templates/js/translated/attachment.js:163
msgid "Comment"
msgstr "Commentaire"
-#: InvenTree/models.py:199
+#: InvenTree/models.py:208
msgid "File comment"
msgstr "Commentaire du fichier"
-#: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1277
+#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1277
#: common/models.py:1278 common/models.py:1506 common/models.py:1507
-#: part/models.py:2303 part/models.py:2323
+#: part/models.py:2317 part/models.py:2337
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2817
+#: templates/js/translated/stock.js:2773
msgid "User"
msgstr "Utilisateur"
-#: InvenTree/models.py:209
+#: InvenTree/models.py:218
msgid "upload date"
msgstr "date de chargement"
-#: InvenTree/models.py:232
+#: InvenTree/models.py:241
msgid "Filename must not be empty"
msgstr "Le nom de fichier ne doit pas être vide"
-#: InvenTree/models.py:255
+#: InvenTree/models.py:264
msgid "Invalid attachment directory"
msgstr "Répertoire de pièce jointe invalide"
-#: InvenTree/models.py:265
+#: InvenTree/models.py:274
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Le nom de fichier contient le caractère illégal '{c}'"
-#: InvenTree/models.py:268
+#: InvenTree/models.py:277
msgid "Filename missing extension"
msgstr "Extension manquante du nom de fichier"
-#: InvenTree/models.py:275
+#: InvenTree/models.py:284
msgid "Attachment with this filename already exists"
msgstr "Une pièce jointe avec ce nom de fichier existe déjà"
-#: InvenTree/models.py:282
+#: InvenTree/models.py:291
msgid "Error renaming file"
msgstr "Erreur lors du renommage du fichier"
-#: InvenTree/models.py:317
+#: InvenTree/models.py:326
msgid "Invalid choice"
msgstr "Choix invalide"
-#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1492
+#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1492
#: company/models.py:415 label/models.py:112 part/models.py:804
-#: part/models.py:2487 plugin/models.py:40 report/models.py:181
+#: part/models.py:2501 plugin/models.py:40 report/models.py:181
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:48
#: templates/InvenTree/settings/plugin.html:125
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:319
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:567
-#: templates/js/translated/part.js:706 templates/js/translated/part.js:1653
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/company.js:641 templates/js/translated/part.js:568
+#: templates/js/translated/part.js:707 templates/js/translated/part.js:1654
+#: templates/js/translated/stock.js:2573
msgid "Name"
msgstr "Nom"
-#: InvenTree/models.py:340 build/models.py:207
+#: InvenTree/models.py:349 build/models.py:209
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
@@ -219,28 +219,28 @@ msgstr "Nom"
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:92
#: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:765
-#: templates/js/translated/build.js:1920 templates/js/translated/company.js:345
+#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763
+#: templates/js/translated/build.js:1973 templates/js/translated/company.js:345
#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:911
-#: templates/js/translated/order.js:1105 templates/js/translated/order.js:1366
-#: templates/js/translated/part.js:626 templates/js/translated/part.js:1021
-#: templates/js/translated/part.js:1106 templates/js/translated/part.js:1276
-#: templates/js/translated/part.js:1672 templates/js/translated/part.js:1741
-#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2446
-#: templates/js/translated/stock.js:2629 templates/js/translated/stock.js:2667
+#: templates/js/translated/company.js:840 templates/js/translated/order.js:971
+#: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454
+#: templates/js/translated/part.js:627 templates/js/translated/part.js:1022
+#: templates/js/translated/part.js:1107 templates/js/translated/part.js:1277
+#: templates/js/translated/part.js:1673 templates/js/translated/part.js:1742
+#: templates/js/translated/stock.js:1656 templates/js/translated/stock.js:2402
+#: templates/js/translated/stock.js:2585 templates/js/translated/stock.js:2623
msgid "Description"
msgstr "Description"
-#: InvenTree/models.py:341
+#: InvenTree/models.py:350
msgid "Description (optional)"
msgstr "Description (facultative)"
-#: InvenTree/models.py:349
+#: InvenTree/models.py:358
msgid "parent"
msgstr "parent"
-#: InvenTree/serializers.py:65 part/models.py:2805
+#: InvenTree/serializers.py:65 part/models.py:2820
msgid "Must be a valid number"
msgstr "Doit être un nombre valide"
@@ -294,87 +294,87 @@ msgstr ""
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:665
msgid "German"
msgstr "Allemand"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:666
msgid "Greek"
msgstr "Greek"
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:667
msgid "English"
msgstr "Anglais"
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:668
msgid "Spanish"
msgstr "Spanish"
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:669
msgid "Spanish (Mexican)"
msgstr "Espagnol (Mexique)"
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:670
msgid "French"
msgstr "Français"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:671
msgid "Hebrew"
msgstr "Hebrew"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:672
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:673
msgid "Italian"
msgstr "Italian"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:674
msgid "Japanese"
msgstr "Japanese"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:675
msgid "Korean"
msgstr "Korean"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:676
msgid "Dutch"
msgstr "Dutch"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:677
msgid "Norwegian"
msgstr "Norwegian"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:678
msgid "Polish"
msgstr "Polonais"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:679
msgid "Portugese"
msgstr "Portugais"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:680
msgid "Russian"
msgstr "Russian"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:681
msgid "Swedish"
msgstr "Swedish"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:682
msgid "Thai"
msgstr "Thai"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:683
msgid "Turkish"
msgstr "Turc"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:684
msgid "Vietnamese"
msgstr "Vietnamese"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:685
msgid "Chinese"
msgstr "Chinese"
@@ -421,7 +421,7 @@ msgid "Returned"
msgstr "Retourné"
#: InvenTree/status_codes.py:143 order/models.py:997
-#: templates/js/translated/order.js:2097 templates/js/translated/order.js:2394
+#: templates/js/translated/order.js:2185 templates/js/translated/order.js:2482
msgid "Shipped"
msgstr "Expédié"
@@ -501,7 +501,7 @@ msgstr "Séparer de l'élément parent"
msgid "Split child item"
msgstr "Fractionner l'élément enfant"
-#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2204
+#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2160
msgid "Merged stock items"
msgstr "Articles de stock fusionnés"
@@ -593,43 +593,43 @@ msgstr "Les mots de passe doivent correspondre"
msgid "System Information"
msgstr "Informations système"
-#: barcodes/api.py:54 barcodes/api.py:152
+#: barcodes/api.py:55 barcodes/api.py:156
msgid "Must provide barcode_data parameter"
msgstr "Le paramètre barcode_data doit être fourni"
-#: barcodes/api.py:128
+#: barcodes/api.py:132
msgid "No match found for barcode data"
msgstr "Aucune correspondance trouvée pour les données du code-barres"
-#: barcodes/api.py:130
+#: barcodes/api.py:134
msgid "Match found for barcode data"
msgstr "Correspondance trouvée pour les données du code-barres"
-#: barcodes/api.py:155
+#: barcodes/api.py:159
msgid "Must provide stockitem parameter"
msgstr "Vous devez fournir le paramètre stockitem"
-#: barcodes/api.py:162
+#: barcodes/api.py:166
msgid "No matching stock item found"
msgstr "Aucun article d'inventaire correspondant trouvé"
-#: barcodes/api.py:193
+#: barcodes/api.py:197
msgid "Barcode already matches Stock Item"
msgstr "Le code-barres correspond déjà à l'objet StockItem"
-#: barcodes/api.py:197
+#: barcodes/api.py:201
msgid "Barcode already matches Stock Location"
msgstr "Le code-barres correspond déjà à l'objet Stock Location"
-#: barcodes/api.py:201
+#: barcodes/api.py:205
msgid "Barcode already matches Part"
msgstr "Le code-barres correspond déjà à l'objet Part"
-#: barcodes/api.py:207 barcodes/api.py:219
+#: barcodes/api.py:211 barcodes/api.py:223
msgid "Barcode hash already matches Stock Item"
msgstr "Le code-barres correspond déjà à l'objet Stock Item"
-#: barcodes/api.py:225
+#: barcodes/api.py:229
msgid "Barcode associated with Stock Item"
msgstr "Code-barres associé à l'article en stock"
@@ -641,18 +641,18 @@ msgstr "Confirmer l'annulation"
msgid "Confirm build cancellation"
msgstr "Confirmer l'annulation de la fabrication"
-#: build/models.py:133
+#: build/models.py:135
msgid "Invalid choice for parent build"
msgstr "Choix invalide pour la fabrication parente"
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:139 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:676 templates/js/translated/stock.js:2422
+#: templates/js/translated/build.js:677 templates/js/translated/stock.js:2378
msgid "Build Order"
msgstr "Ordre de Fabrication"
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:140 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:92
#: order/templates/order/so_sidebar.html:13
@@ -662,41 +662,41 @@ msgstr "Ordre de Fabrication"
msgid "Build Orders"
msgstr "Ordres de Fabrication"
-#: build/models.py:198
+#: build/models.py:200
msgid "Build Order Reference"
msgstr "Référence de l' Ordre de Fabrication"
-#: build/models.py:199 order/models.py:213 order/models.py:563
-#: order/models.py:843 part/models.py:2716
+#: build/models.py:201 order/models.py:213 order/models.py:563
+#: order/models.py:843 part/models.py:2731
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:772 templates/js/translated/build.js:1401
-#: templates/js/translated/order.js:1136 templates/js/translated/order.js:2261
+#: templates/js/translated/bom.js:770 templates/js/translated/build.js:1402
+#: templates/js/translated/order.js:1223 templates/js/translated/order.js:2349
msgid "Reference"
msgstr "Référence"
-#: build/models.py:210
+#: build/models.py:212
msgid "Brief description of the build"
msgstr "Brève description de la fabrication"
-#: build/models.py:219 build/templates/build/build_base.html:169
+#: build/models.py:221 build/templates/build/build_base.html:169
#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr "Fabrication parente"
-#: build/models.py:220
+#: build/models.py:222
msgid "BuildOrder to which this build is allocated"
msgstr "BuildOrder associé a cette fabrication"
-#: build/models.py:225 build/templates/build/build_base.html:77
+#: build/models.py:227 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
#: order/models.py:912 order/models.py:986
#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359
-#: part/models.py:2249 part/models.py:2265 part/models.py:2284
-#: part/models.py:2301 part/models.py:2403 part/models.py:2525
-#: part/models.py:2615 part/models.py:2691 part/models.py:2998
-#: part/serializers.py:666 part/templates/part/part_app_base.html:8
+#: part/models.py:2263 part/models.py:2279 part/models.py:2298
+#: part/models.py:2315 part/models.py:2417 part/models.py:2539
+#: part/models.py:2629 part/models.py:2706 part/models.py:3013
+#: part/serializers.py:669 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: part/templates/part/upload_bom.html:52
@@ -707,231 +707,231 @@ msgstr "BuildOrder associé a cette fabrication"
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551
-#: templates/js/translated/bom.js:730 templates/js/translated/build.js:902
-#: templates/js/translated/build.js:1270 templates/js/translated/build.js:1655
-#: templates/js/translated/build.js:1925 templates/js/translated/company.js:492
+#: templates/js/translated/bom.js:728 templates/js/translated/build.js:903
+#: templates/js/translated/build.js:1271 templates/js/translated/build.js:1666
+#: templates/js/translated/build.js:1978 templates/js/translated/company.js:492
#: templates/js/translated/company.js:749 templates/js/translated/order.js:84
-#: templates/js/translated/order.js:651 templates/js/translated/order.js:1090
-#: templates/js/translated/order.js:1693 templates/js/translated/order.js:2050
-#: templates/js/translated/order.js:2245 templates/js/translated/part.js:1006
-#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1254
-#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1657
-#: templates/js/translated/stock.js:2892 templates/js/translated/stock.js:2991
+#: templates/js/translated/order.js:711 templates/js/translated/order.js:1177
+#: templates/js/translated/order.js:1781 templates/js/translated/order.js:2138
+#: templates/js/translated/order.js:2333 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1088 templates/js/translated/part.js:1255
+#: templates/js/translated/stock.js:518 templates/js/translated/stock.js:683
+#: templates/js/translated/stock.js:890 templates/js/translated/stock.js:1613
+#: templates/js/translated/stock.js:2848 templates/js/translated/stock.js:2947
msgid "Part"
msgstr "Pièce"
-#: build/models.py:233
+#: build/models.py:235
msgid "Select part to build"
msgstr "Sélectionnez la pièce à construire"
-#: build/models.py:238
+#: build/models.py:240
msgid "Sales Order Reference"
msgstr "Bon de commande de référence"
-#: build/models.py:242
+#: build/models.py:244
msgid "SalesOrder to which this build is allocated"
msgstr "Commande de vente à laquelle cette construction est allouée"
-#: build/models.py:247 templates/js/translated/build.js:1643
-#: templates/js/translated/order.js:1681
+#: build/models.py:249 build/serializers.py:729
+#: templates/js/translated/build.js:1654 templates/js/translated/order.js:1769
msgid "Source Location"
msgstr "Emplacement d'origine"
-#: build/models.py:251
+#: build/models.py:253
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr "Sélectionner l'emplacement à partir duquel le stock doit être pris pour cette construction (laisser vide pour prendre à partir de n'importe quel emplacement de stock)"
-#: build/models.py:256
+#: build/models.py:258
msgid "Destination Location"
msgstr "Emplacement cible"
-#: build/models.py:260
+#: build/models.py:262
msgid "Select location where the completed items will be stored"
msgstr "Sélectionnez l'emplacement où les éléments complétés seront stockés"
-#: build/models.py:264
+#: build/models.py:266
msgid "Build Quantity"
msgstr "Quantité a fabriquer"
-#: build/models.py:267
+#: build/models.py:269
msgid "Number of stock items to build"
msgstr "Nombre de stock items à construire"
-#: build/models.py:271
+#: build/models.py:273
msgid "Completed items"
msgstr "Articles terminés"
-#: build/models.py:273
+#: build/models.py:275
msgid "Number of stock items which have been completed"
msgstr "Nombre d'articles de stock qui ont été terminés"
-#: build/models.py:277 part/templates/part/part_base.html:234
+#: build/models.py:279 part/templates/part/part_base.html:234
msgid "Build Status"
msgstr "État de la construction"
-#: build/models.py:281
+#: build/models.py:283
msgid "Build status code"
msgstr "Code de statut de construction"
-#: build/models.py:285 build/serializers.py:218 order/serializers.py:272
-#: stock/models.py:570 templates/js/translated/order.js:513
+#: build/models.py:287 build/serializers.py:218 order/serializers.py:272
+#: stock/models.py:622 templates/js/translated/order.js:573
msgid "Batch Code"
msgstr "Code de lot"
-#: build/models.py:289 build/serializers.py:219
+#: build/models.py:291 build/serializers.py:219
msgid "Batch code for this build output"
msgstr "Code de lot pour ce build output"
-#: build/models.py:292 order/models.py:129 part/models.py:999
-#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1379
+#: build/models.py:294 order/models.py:129 part/models.py:999
+#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1467
msgid "Creation Date"
msgstr "Date de création"
-#: build/models.py:296 order/models.py:585
+#: build/models.py:298 order/models.py:585
msgid "Target completion date"
msgstr "Date d'achèvement cible"
-#: build/models.py:297
+#: build/models.py:299
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Date cible pour l'achèvement de la construction. La construction sera en retard après cette date."
-#: build/models.py:300 order/models.py:255
-#: templates/js/translated/build.js:2002
+#: build/models.py:302 order/models.py:255
+#: templates/js/translated/build.js:2055
msgid "Completion Date"
msgstr "Date d'achèvement"
-#: build/models.py:306
+#: build/models.py:308
msgid "completed by"
msgstr "achevé par"
-#: build/models.py:314 templates/js/translated/build.js:1970
+#: build/models.py:316 templates/js/translated/build.js:2023
msgid "Issued by"
msgstr "Émis par"
-#: build/models.py:315
+#: build/models.py:317
msgid "User who issued this build order"
msgstr "Utilisateur ayant émis cette commande de construction"
-#: build/models.py:323 build/templates/build/build_base.html:190
+#: build/models.py:325 build/templates/build/build_base.html:190
#: build/templates/build/detail.html:116 order/models.py:143
#: order/templates/order/order_base.html:170
#: order/templates/order/sales_order_base.html:182 part/models.py:1003
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1982 templates/js/translated/order.js:945
+#: templates/js/translated/build.js:2035 templates/js/translated/order.js:1005
msgid "Responsible"
msgstr "Responsable"
-#: build/models.py:324
+#: build/models.py:326
msgid "User responsible for this build order"
msgstr "Utilisateur responsable de cette commande de construction"
-#: build/models.py:329 build/templates/build/detail.html:102
+#: build/models.py:331 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:564
+#: part/templates/part/part_base.html:354 stock/models.py:616
#: stock/templates/stock/item_base.html:352
msgid "External Link"
msgstr "Lien Externe"
-#: build/models.py:334 build/serializers.py:381
+#: build/models.py:336 build/serializers.py:381
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
#: order/models.py:147 order/models.py:845 order/models.py:1107
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/models.py:988
-#: part/templates/part/detail.html:146 part/templates/part/part_sidebar.html:57
+#: part/templates/part/detail.html:141 part/templates/part/part_sidebar.html:57
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:137 stock/forms.py:171 stock/models.py:636
-#: stock/models.py:1971 stock/models.py:2077 stock/serializers.py:332
+#: stock/forms.py:137 stock/forms.py:171 stock/models.py:688
+#: stock/models.py:2023 stock/models.py:2129 stock/serializers.py:332
#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:936
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1257
-#: templates/js/translated/order.js:1562 templates/js/translated/order.js:2419
-#: templates/js/translated/stock.js:1344 templates/js/translated/stock.js:1935
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934
+#: templates/js/translated/company.js:845 templates/js/translated/order.js:1344
+#: templates/js/translated/order.js:1650 templates/js/translated/order.js:2507
+#: templates/js/translated/stock.js:1300 templates/js/translated/stock.js:1891
msgid "Notes"
msgstr "Notes"
-#: build/models.py:335
+#: build/models.py:337
msgid "Extra build notes"
msgstr "Notes de construction supplémentaires"
-#: build/models.py:748
+#: build/models.py:750
msgid "No build output specified"
msgstr "Pas d'ordre de production défini"
-#: build/models.py:751
+#: build/models.py:753
msgid "Build output is already completed"
msgstr "L'ordre de production a déjà été réalisé"
-#: build/models.py:754
+#: build/models.py:756
msgid "Build output does not match Build Order"
msgstr "L'ordre de production de correspond pas à l'ordre de commande"
-#: build/models.py:1060
+#: build/models.py:1162
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "L'élément de construction doit spécifier une sortie de construction, la pièce maîtresse étant marquée comme objet traçable"
-#: build/models.py:1069
+#: build/models.py:1171
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr "La quantité allouée ({q}) ne doit pas excéder la quantité disponible ({a})"
-#: build/models.py:1079
+#: build/models.py:1181
msgid "Stock item is over-allocated"
msgstr "L'article de stock est suralloué"
-#: build/models.py:1085 order/models.py:1225
+#: build/models.py:1187 order/models.py:1225
msgid "Allocation quantity must be greater than zero"
msgstr "La quantité allouée doit être supérieure à zéro"
-#: build/models.py:1091
+#: build/models.py:1193
msgid "Quantity must be 1 for serialized stock"
msgstr "La quantité doit être de 1 pour stock sérialisé"
-#: build/models.py:1148
+#: build/models.py:1250
msgid "Selected stock item not found in BOM"
msgstr "L'article du stock sélectionné n'a pas été trouvé dans la BOM"
-#: build/models.py:1217 stock/templates/stock/item_base.html:324
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898
+#: build/models.py:1319 stock/templates/stock/item_base.html:324
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1951
#: templates/navbar.html:35
msgid "Build"
msgstr "Assemblage"
-#: build/models.py:1218
+#: build/models.py:1320
msgid "Build to allocate parts"
msgstr "Construction à laquelle allouer des pièces"
-#: build/models.py:1234 build/serializers.py:576 order/serializers.py:783
+#: build/models.py:1336 build/serializers.py:576 order/serializers.py:783
#: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635
#: stock/serializers.py:753 stock/templates/stock/item_base.html:9
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:346
-#: templates/js/translated/build.js:687 templates/js/translated/build.js:692
-#: templates/js/translated/build.js:1657 templates/js/translated/build.js:2050
-#: templates/js/translated/order.js:85 templates/js/translated/order.js:1694
-#: templates/js/translated/order.js:1949 templates/js/translated/order.js:1954
-#: templates/js/translated/order.js:2057 templates/js/translated/order.js:2147
-#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728
-#: templates/js/translated/stock.js:2753
+#: templates/js/translated/build.js:688 templates/js/translated/build.js:693
+#: templates/js/translated/build.js:1668 templates/js/translated/build.js:2103
+#: templates/js/translated/order.js:85 templates/js/translated/order.js:1782
+#: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:2235
+#: templates/js/translated/stock.js:519 templates/js/translated/stock.js:684
+#: templates/js/translated/stock.js:2709
msgid "Stock Item"
msgstr "Article en stock"
-#: build/models.py:1235
+#: build/models.py:1337
msgid "Source stock item"
msgstr "Stock d'origine de l'article"
-#: build/models.py:1247 build/serializers.py:188
+#: build/models.py:1349 build/serializers.py:188
#: build/templates/build/build_base.html:82
#: build/templates/build/detail.html:35 common/models.py:1317
#: company/forms.py:42 company/templates/company/supplier_part.html:251
#: order/models.py:836 order/models.py:1265 order/serializers.py:903
#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144
-#: part/forms.py:160 part/forms.py:176 part/models.py:2707
-#: part/templates/part/detail.html:1008 part/templates/part/detail.html:1094
+#: part/forms.py:160 part/forms.py:176 part/models.py:2722
+#: part/templates/part/detail.html:994 part/templates/part/detail.html:1080
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_build_order_base.html:114
@@ -943,32 +943,32 @@ msgstr "Stock d'origine de l'article"
#: stock/templates/stock/item_base.html:176
#: stock/templates/stock/item_base.html:241
#: stock/templates/stock/item_base.html:249
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:780
-#: templates/js/translated/build.js:375 templates/js/translated/build.js:523
-#: templates/js/translated/build.js:714 templates/js/translated/build.js:911
-#: templates/js/translated/build.js:921 templates/js/translated/build.js:1297
-#: templates/js/translated/build.js:1658
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778
+#: templates/js/translated/build.js:376 templates/js/translated/build.js:524
+#: templates/js/translated/build.js:715 templates/js/translated/build.js:912
+#: templates/js/translated/build.js:922 templates/js/translated/build.js:1298
+#: templates/js/translated/build.js:1669
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:101 templates/js/translated/order.js:1142
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:1976
-#: templates/js/translated/order.js:2064 templates/js/translated/order.js:2153
-#: templates/js/translated/order.js:2267 templates/js/translated/part.js:906
-#: templates/js/translated/part.js:1884 templates/js/translated/part.js:2007
-#: templates/js/translated/part.js:2085 templates/js/translated/stock.js:391
-#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758
-#: templates/js/translated/stock.js:2802 templates/js/translated/stock.js:2904
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:1229
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:2064
+#: templates/js/translated/order.js:2152 templates/js/translated/order.js:2241
+#: templates/js/translated/order.js:2355 templates/js/translated/part.js:907
+#: templates/js/translated/part.js:1885 templates/js/translated/part.js:2008
+#: templates/js/translated/part.js:2086 templates/js/translated/stock.js:390
+#: templates/js/translated/stock.js:544 templates/js/translated/stock.js:714
+#: templates/js/translated/stock.js:2758 templates/js/translated/stock.js:2860
msgid "Quantity"
msgstr "Quantité"
-#: build/models.py:1248
+#: build/models.py:1350
msgid "Stock quantity to allocate to build"
msgstr "Quantité de stock à allouer à la construction"
-#: build/models.py:1256
+#: build/models.py:1358
msgid "Install into"
msgstr "Installer dans"
-#: build/models.py:1257
+#: build/models.py:1359
msgid "Destination stock item"
msgstr "Stock de destination de l'article"
@@ -997,8 +997,8 @@ msgid "Enter quantity for build output"
msgstr "Entrer la quantité désiré pour la fabrication"
#: build/serializers.py:201 build/serializers.py:596 order/models.py:280
-#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:826
-#: stock/models.py:404 stock/models.py:1180 stock/serializers.py:305
+#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:836
+#: stock/models.py:456 stock/models.py:1232 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr "La quantité doit être supérieure à zéro"
@@ -1012,8 +1012,8 @@ msgstr ""
#: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907
#: stock/forms.py:78 stock/serializers.py:314
-#: templates/js/translated/order.js:524 templates/js/translated/stock.js:238
-#: templates/js/translated/stock.js:392
+#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237
+#: templates/js/translated/stock.js:391
msgid "Serial Numbers"
msgstr "Numéros de série"
@@ -1029,7 +1029,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:275 stock/api.py:549
+#: build/serializers.py:275 stock/api.py:551
msgid "The following serial numbers already exist"
msgstr ""
@@ -1041,13 +1041,13 @@ msgstr "Une liste d'ordre de production doit être fourni"
#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788
#: stock/serializers.py:1029 stock/templates/stock/item_base.html:292
#: templates/js/translated/barcode.js:384
-#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:699
-#: templates/js/translated/build.js:1309 templates/js/translated/order.js:551
-#: templates/js/translated/order.js:1961 templates/js/translated/order.js:2072
-#: templates/js/translated/order.js:2080 templates/js/translated/order.js:2161
-#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564
-#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936
-#: templates/js/translated/stock.js:1807 templates/js/translated/stock.js:2694
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700
+#: templates/js/translated/build.js:1310 templates/js/translated/order.js:611
+#: templates/js/translated/order.js:2049 templates/js/translated/order.js:2160
+#: templates/js/translated/order.js:2168 templates/js/translated/order.js:2249
+#: templates/js/translated/part.js:179 templates/js/translated/stock.js:520
+#: templates/js/translated/stock.js:685 templates/js/translated/stock.js:892
+#: templates/js/translated/stock.js:1763 templates/js/translated/stock.js:2650
msgid "Location"
msgstr "Emplacement"
@@ -1058,10 +1058,10 @@ msgstr "Emplacement des ordres de production achevés"
#: build/serializers.py:377 build/templates/build/build_base.html:142
#: build/templates/build/detail.html:63 order/models.py:579
#: order/serializers.py:290 stock/templates/stock/item_base.html:182
-#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1954
-#: templates/js/translated/order.js:656 templates/js/translated/order.js:915
-#: templates/js/translated/order.js:1371 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2771 templates/js/translated/stock.js:2920
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2007
+#: templates/js/translated/order.js:716 templates/js/translated/order.js:975
+#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2727 templates/js/translated/stock.js:2876
msgid "Status"
msgstr "État"
@@ -1073,7 +1073,7 @@ msgstr "Accepter les non-alloués"
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr "Accepter les articles de stock qui n'ont pas été complètement alloués à cette ordre de production"
-#: build/serializers.py:445 templates/js/translated/build.js:150
+#: build/serializers.py:445 templates/js/translated/build.js:151
msgid "Required stock has not been fully allocated"
msgstr "Le stock requis n'a pas encore été totalement alloué"
@@ -1085,7 +1085,7 @@ msgstr "Accepter les incomplèts"
msgid "Accept that the required number of build outputs have not been completed"
msgstr "Accepter que tous les ordres de production n'aient pas encore été achevés"
-#: build/serializers.py:461 templates/js/translated/build.js:154
+#: build/serializers.py:461 templates/js/translated/build.js:155
msgid "Required build quantity has not been completed"
msgstr "La quantité nécessaire n'a pas encore été complétée"
@@ -1097,8 +1097,8 @@ msgstr "L'ordre de production a des sorties incomplètes"
msgid "No build outputs have been created for this build order"
msgstr ""
-#: build/serializers.py:501 build/serializers.py:550 part/models.py:2831
-#: part/models.py:2990
+#: build/serializers.py:501 build/serializers.py:550 part/models.py:2846
+#: part/models.py:3005
msgid "BOM Item"
msgstr ""
@@ -1135,6 +1135,26 @@ msgstr ""
msgid "Allocation items must be provided"
msgstr ""
+#: build/serializers.py:730
+msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
+msgstr ""
+
+#: build/serializers.py:735
+msgid "Interchangeable Stock"
+msgstr ""
+
+#: build/serializers.py:736
+msgid "Stock items in multiple locations can be used interchangeably"
+msgstr ""
+
+#: build/serializers.py:741
+msgid "Substitute Stock"
+msgstr ""
+
+#: build/serializers.py:742
+msgid "Allow allocation of substitute parts"
+msgstr ""
+
#: build/tasks.py:98
msgid "Stock required for build order"
msgstr "Stock requis pour la commande de construction"
@@ -1206,9 +1226,9 @@ msgstr "Le stock n'a pas été entièrement alloué à cet ordre de construction
#: order/templates/order/order_base.html:156
#: order/templates/order/sales_order_base.html:163
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1994 templates/js/translated/order.js:932
-#: templates/js/translated/order.js:1204 templates/js/translated/order.js:1387
-#: templates/js/translated/order.js:2330 templates/js/translated/part.js:910
+#: templates/js/translated/build.js:2047 templates/js/translated/order.js:992
+#: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475
+#: templates/js/translated/order.js:2418 templates/js/translated/part.js:911
msgid "Target Date"
msgstr "Date Cible"
@@ -1230,7 +1250,7 @@ msgstr "En retard"
#: build/templates/build/build_base.html:163
#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
#: order/templates/order/sales_order_base.html:170
-#: templates/js/translated/build.js:1940
+#: templates/js/translated/build.js:1993
#: templates/js/translated/table_filters.js:365
msgid "Completed"
msgstr "Terminé"
@@ -1242,7 +1262,7 @@ msgstr "Terminé"
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:286
-#: templates/js/translated/order.js:1326 templates/js/translated/stock.js:2436
+#: templates/js/translated/order.js:1414 templates/js/translated/stock.js:2392
msgid "Sales Order"
msgstr "Commandes"
@@ -1277,7 +1297,7 @@ msgid "Stock can be taken from any available location."
msgstr "Le stock peut être pris à partir de n'importe quel endroit disponible."
#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133
-#: templates/js/translated/order.js:657 templates/js/translated/order.js:1246
+#: templates/js/translated/order.js:717 templates/js/translated/order.js:1333
msgid "Destination"
msgstr "Destination"
@@ -1285,13 +1305,13 @@ msgstr "Destination"
msgid "Destination location not specified"
msgstr "Stockage de destination non défini"
-#: build/templates/build/detail.html:74 templates/js/translated/build.js:929
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:930
msgid "Allocated Parts"
msgstr "Pièces allouées"
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:310
-#: templates/js/translated/stock.js:1796 templates/js/translated/stock.js:2927
+#: templates/js/translated/stock.js:1752 templates/js/translated/stock.js:2883
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:238
msgid "Batch"
@@ -1300,7 +1320,7 @@ msgstr ""
#: build/templates/build/detail.html:127
#: order/templates/order/order_base.html:143
#: order/templates/order/sales_order_base.html:157
-#: templates/js/translated/build.js:1962
+#: templates/js/translated/build.js:2015
msgid "Created"
msgstr "Créé le"
@@ -1320,7 +1340,7 @@ msgstr ""
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:177 templates/js/translated/build.js:1484
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1485
msgid "Unallocate stock"
msgstr "Désallouer le stock"
@@ -1329,111 +1349,119 @@ msgid "Unallocate Stock"
msgstr "Désallouer le stock"
#: build/templates/build/detail.html:180
-msgid "Allocate stock to build"
-msgstr "Allouer le stock à une construction"
+msgid "Automatically allocate stock to build"
+msgstr ""
-#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
+#: build/templates/build/detail.html:181
+msgid "Auto Allocate"
+msgstr ""
+
+#: build/templates/build/detail.html:183
+msgid "Manually allocate stock to build"
+msgstr ""
+
+#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8
msgid "Allocate Stock"
msgstr "Allouer le stock"
-#: build/templates/build/detail.html:184
+#: build/templates/build/detail.html:187
msgid "Order required parts"
msgstr "Commander les pièces requises"
-#: build/templates/build/detail.html:185
+#: build/templates/build/detail.html:188
#: company/templates/company/detail.html:38
#: company/templates/company/detail.html:85 order/views.py:463
-#: part/templates/part/category.html:177
+#: part/templates/part/category.html:174
msgid "Order Parts"
msgstr "Commander des pièces"
-#: build/templates/build/detail.html:197
+#: build/templates/build/detail.html:200
msgid "Untracked stock has been fully allocated for this Build Order"
msgstr "Le stock non suivi a été entièrement alloué pour cet ordre de construction"
-#: build/templates/build/detail.html:201
+#: build/templates/build/detail.html:204
msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr "Du stock non suivi n'a pas été entièrement alloué pour cet ordre de construction"
-#: build/templates/build/detail.html:208
+#: build/templates/build/detail.html:211
msgid "Allocate selected items"
msgstr "Allouer les éléments sélectionnés"
-#: build/templates/build/detail.html:218
+#: build/templates/build/detail.html:221
msgid "This Build Order does not have any associated untracked BOM items"
msgstr "Cet ordre de construction n'a aucun objet de BOM non suivi associé"
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:230
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:231
+#: build/templates/build/detail.html:234
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:232
+#: build/templates/build/detail.html:235
msgid "New Build Output"
msgstr ""
-#: build/templates/build/detail.html:246
+#: build/templates/build/detail.html:249
msgid "Output Actions"
msgstr ""
-#: build/templates/build/detail.html:250
+#: build/templates/build/detail.html:253
msgid "Complete selected build outputs"
msgstr ""
-#: build/templates/build/detail.html:251
+#: build/templates/build/detail.html:254
msgid "Complete outputs"
msgstr ""
-#: build/templates/build/detail.html:253
+#: build/templates/build/detail.html:256
msgid "Delete selected build outputs"
msgstr ""
-#: build/templates/build/detail.html:254
+#: build/templates/build/detail.html:257
msgid "Delete outputs"
msgstr ""
-#: build/templates/build/detail.html:270
+#: build/templates/build/detail.html:273
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19
+#: build/templates/build/detail.html:285 build/templates/build/sidebar.html:19
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:107
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:222
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217
#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:105
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr "Pieces jointes"
-#: build/templates/build/detail.html:298
+#: build/templates/build/detail.html:301
msgid "Build Notes"
msgstr "Notes de construction"
-#: build/templates/build/detail.html:302 build/templates/build/detail.html:478
-#: company/templates/company/detail.html:188
-#: company/templates/company/detail.html:215
+#: build/templates/build/detail.html:305 build/templates/build/detail.html:481
+#: company/templates/company/detail.html:190
+#: company/templates/company/detail.html:217
#: order/templates/order/purchase_order_detail.html:80
#: order/templates/order/purchase_order_detail.html:108
#: order/templates/order/sales_order_detail.html:127
#: order/templates/order/sales_order_detail.html:186
-#: part/templates/part/detail.html:150 stock/templates/stock/item.html:125
+#: part/templates/part/detail.html:145 stock/templates/stock/item.html:125
#: stock/templates/stock/item.html:223
msgid "Edit Notes"
msgstr "Modifier les notes"
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:519
msgid "Allocation Complete"
msgstr "Allocation terminée"
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:520
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:329
+#: build/templates/build/index.html:18 part/templates/part/detail.html:322
msgid "New Build Order"
msgstr "Nouvel ordre de construction"
@@ -1658,7 +1686,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:732 part/models.py:2527 report/models.py:187
+#: common/models.py:732 part/models.py:2541 report/models.py:187
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:417
msgid "Template"
@@ -1668,7 +1696,7 @@ msgstr "Template"
msgid "Parts are templates by default"
msgstr "Les pièces sont des templates par défaut"
-#: common/models.py:739 part/models.py:951 templates/js/translated/bom.js:1300
+#: common/models.py:739 part/models.py:951 templates/js/translated/bom.js:1305
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:429
msgid "Assembly"
@@ -2243,7 +2271,7 @@ msgstr ""
#: common/models.py:1325 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:937 templates/js/translated/part.js:1889
+#: templates/js/translated/part.js:938 templates/js/translated/part.js:1890
msgid "Price"
msgstr ""
@@ -2337,14 +2365,14 @@ msgstr ""
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
-#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:210
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208
#: templates/patterns/wizard/upload.html:35
msgid "Upload File"
msgstr ""
#: common/views.py:94 order/views.py:244
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:211
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:209
#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
@@ -2472,7 +2500,7 @@ msgstr "Devise"
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:508
+#: company/models.py:320 company/models.py:535 stock/models.py:560
#: stock/templates/stock/item_base.html:137 templates/js/translated/bom.js:541
msgid "Base Part"
msgstr ""
@@ -2499,8 +2527,8 @@ msgstr "Sélectionner un fabricant"
#: company/models.py:342 company/templates/company/manufacturer_part.html:96
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1124
-#: templates/js/translated/part.js:245 templates/js/translated/part.js:895
+#: templates/js/translated/company.js:818 templates/js/translated/order.js:1211
+#: templates/js/translated/part.js:245 templates/js/translated/part.js:896
msgid "MPN"
msgstr ""
@@ -2529,8 +2557,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2064 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1331
+#: stock/models.py:2116 templates/js/translated/company.js:647
+#: templates/js/translated/part.js:716 templates/js/translated/stock.js:1287
msgid "Value"
msgstr "Valeur"
@@ -2538,10 +2566,10 @@ msgstr "Valeur"
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:945 part/models.py:2495
+#: company/models.py:429 part/models.py:945 part/models.py:2509
#: part/templates/part/part_base.html:288
#: templates/InvenTree/settings/settings.html:324
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:721
+#: templates/js/translated/company.js:653 templates/js/translated/part.js:722
msgid "Units"
msgstr ""
@@ -2559,8 +2587,8 @@ msgstr ""
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237
#: part/bom.py:265 stock/templates/stock/item_base.html:376
#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:898
-#: templates/js/translated/part.js:215 templates/js/translated/part.js:863
+#: templates/js/translated/company.js:774 templates/js/translated/order.js:958
+#: templates/js/translated/part.js:215 templates/js/translated/part.js:864
#: templates/js/translated/table_filters.js:388
msgid "Supplier"
msgstr "Fournisseur"
@@ -2570,8 +2598,8 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1111
-#: templates/js/translated/part.js:226 templates/js/translated/part.js:881
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198
+#: templates/js/translated/part.js:226 templates/js/translated/part.js:882
msgid "SKU"
msgstr ""
@@ -2592,7 +2620,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:119
-#: part/models.py:2719 part/templates/part/upload_bom.html:59
+#: part/models.py:2734 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409
msgid "Note"
@@ -2607,8 +2635,8 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:532 stock/templates/stock/item_base.html:317
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1931
+#: stock/models.py:584 stock/templates/stock/item_base.html:317
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1887
msgid "Packaging"
msgstr ""
@@ -2676,11 +2704,11 @@ msgid "Download image from URL"
msgstr "Télécharger l'image depuis l'URL"
#: company/templates/company/company_base.html:83 order/models.py:574
-#: order/templates/order/sales_order_base.html:115 stock/models.py:551
-#: stock/models.py:552 stock/serializers.py:683
+#: order/templates/order/sales_order_base.html:115 stock/models.py:603
+#: stock/models.py:604 stock/serializers.py:683
#: stock/templates/stock/item_base.html:269
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1348
-#: templates/js/translated/stock.js:2735
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1436
+#: templates/js/translated/stock.js:2691
#: templates/js/translated/table_filters.js:392
msgid "Customer"
msgstr ""
@@ -2711,7 +2739,7 @@ msgstr ""
#: company/templates/company/detail.html:20
#: company/templates/company/manufacturer_part.html:118
-#: part/templates/part/detail.html:367
+#: part/templates/part/detail.html:360
msgid "New Supplier Part"
msgstr ""
@@ -2719,14 +2747,14 @@ msgstr ""
#: company/templates/company/detail.html:79
#: company/templates/company/manufacturer_part.html:127
#: company/templates/company/manufacturer_part.html:156
-#: part/templates/part/category.html:171 part/templates/part/detail.html:376
-#: part/templates/part/detail.html:405
+#: part/templates/part/category.html:168 part/templates/part/detail.html:369
+#: part/templates/part/detail.html:398
msgid "Options"
msgstr ""
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177
+#: part/templates/part/category.html:174
msgid "Order parts"
msgstr ""
@@ -2748,7 +2776,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:395
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:388
msgid "New Manufacturer Part"
msgstr ""
@@ -2762,7 +2790,7 @@ msgstr ""
#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:40
+#: part/templates/part/detail.html:80 part/templates/part/part_sidebar.html:40
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
@@ -2784,7 +2812,7 @@ msgstr "Nouvelle commande achat"
#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:44
+#: part/templates/part/detail.html:103 part/templates/part/part_sidebar.html:44
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
@@ -2802,23 +2830,23 @@ msgid "New Sales Order"
msgstr "Nouvelle commande de vente"
#: company/templates/company/detail.html:168
-#: templates/js/translated/build.js:1281
+#: templates/js/translated/build.js:1282
msgid "Assigned Stock"
msgstr "Stock affecté"
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:186
msgid "Company Notes"
msgstr ""
-#: company/templates/company/detail.html:384
+#: company/templates/company/detail.html:380
#: company/templates/company/manufacturer_part.html:215
-#: part/templates/part/detail.html:449
+#: part/templates/part/detail.html:442
msgid "Delete Supplier Parts?"
msgstr ""
-#: company/templates/company/detail.html:385
+#: company/templates/company/detail.html:381
#: company/templates/company/manufacturer_part.html:216
-#: part/templates/part/detail.html:450
+#: part/templates/part/detail.html:443
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2835,7 +2863,7 @@ msgstr "Fabricants"
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:34
#: company/templates/company/supplier_part.html:159
-#: part/templates/part/detail.html:88 part/templates/part/part_base.html:76
+#: part/templates/part/detail.html:83 part/templates/part/part_base.html:76
msgid "Order part"
msgstr ""
@@ -2862,14 +2890,14 @@ msgid "Suppliers"
msgstr "Fournisseurs"
#: company/templates/company/manufacturer_part.html:129
-#: part/templates/part/detail.html:378
+#: part/templates/part/detail.html:371
msgid "Delete supplier parts"
msgstr "Supprimer les pièces du fournisseur"
#: company/templates/company/manufacturer_part.html:129
#: company/templates/company/manufacturer_part.html:158
#: company/templates/company/manufacturer_part.html:254
-#: part/templates/part/detail.html:378 part/templates/part/detail.html:407
+#: part/templates/part/detail.html:371 part/templates/part/detail.html:400
#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31
#: users/models.py:217
msgid "Delete"
@@ -2878,12 +2906,12 @@ msgstr "Supprimer"
#: company/templates/company/manufacturer_part.html:143
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:17
-#: part/templates/part/detail.html:196 part/templates/part/part_sidebar.html:9
+#: part/templates/part/detail.html:191 part/templates/part/part_sidebar.html:9
msgid "Parameters"
msgstr "Paramètres"
#: company/templates/company/manufacturer_part.html:147
-#: part/templates/part/detail.html:201
+#: part/templates/part/detail.html:196
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:66
msgid "New Parameter"
@@ -2894,7 +2922,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:191
-#: part/templates/part/detail.html:908
+#: part/templates/part/detail.html:894
msgid "Add Parameter"
msgstr ""
@@ -2923,9 +2951,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:516
+#: company/templates/company/supplier_part.html:24 stock/models.py:568
#: stock/templates/stock/item_base.html:381
-#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1888
+#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1844
msgid "Supplier Part"
msgstr ""
@@ -2951,7 +2979,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:166
-#: templates/js/translated/stock.js:368
+#: templates/js/translated/stock.js:367
msgid "New Stock Item"
msgstr ""
@@ -2961,7 +2989,7 @@ msgid "Supplier Part Orders"
msgstr ""
#: company/templates/company/supplier_part.html:160
-#: part/templates/part/detail.html:89
+#: part/templates/part/detail.html:84
msgid "Order Part"
msgstr ""
@@ -2972,7 +3000,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1319
+#: part/templates/part/prices.html:271 part/views.py:1254
msgid "Add Price Break"
msgstr ""
@@ -2980,11 +3008,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1381
+#: company/templates/company/supplier_part.html:224 part/views.py:1316
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1367
+#: company/templates/company/supplier_part.html:238 part/views.py:1302
msgid "Edit Price Break"
msgstr ""
@@ -3002,10 +3030,10 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:150
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/bom.js:553 templates/js/translated/part.js:495
-#: templates/js/translated/part.js:630 templates/js/translated/part.js:1147
-#: templates/js/translated/part.js:1308 templates/js/translated/stock.js:935
-#: templates/js/translated/stock.js:1711 templates/navbar.html:28
+#: templates/js/translated/bom.js:553 templates/js/translated/part.js:496
+#: templates/js/translated/part.js:631 templates/js/translated/part.js:1148
+#: templates/js/translated/part.js:1309 templates/js/translated/stock.js:891
+#: templates/js/translated/stock.js:1667 templates/navbar.html:28
msgid "Stock"
msgstr "Stock"
@@ -3028,7 +3056,7 @@ msgstr "Tarif"
#: stock/templates/stock/location.html:150
#: stock/templates/stock/location.html:162
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2641
+#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2597
#: templates/stats.html:105 templates/stats.html:114 users/models.py:43
msgid "Stock Items"
msgstr "Éléments en stock"
@@ -3058,20 +3086,20 @@ msgstr "Entreprises"
msgid "New Company"
msgstr "Nouvelle Entreprise"
-#: company/views.py:129 part/views.py:591
+#: company/views.py:129 part/views.py:589
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:623
+#: company/views.py:158 part/views.py:621
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:630
+#: company/views.py:165 part/views.py:628
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:639
+#: company/views.py:174 part/views.py:637
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3190,7 +3218,7 @@ msgid "Company from which the items are being ordered"
msgstr ""
#: order/models.py:231 order/templates/order/order_base.html:118
-#: templates/js/translated/order.js:907
+#: templates/js/translated/order.js:967
msgid "Supplier Reference"
msgstr ""
@@ -3247,7 +3275,7 @@ msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
#: order/models.py:589 order/models.py:1084
-#: templates/js/translated/order.js:1395 templates/js/translated/order.js:1546
+#: templates/js/translated/order.js:1483 templates/js/translated/order.js:1634
msgid "Shipment Date"
msgstr ""
@@ -3292,7 +3320,7 @@ msgid "Supplier part must match supplier"
msgstr ""
#: order/models.py:891 order/models.py:982 order/models.py:1078
-#: templates/js/translated/order.js:1937 templates/js/translated/stock.js:2403
+#: templates/js/translated/order.js:2025 templates/js/translated/stock.js:2359
msgid "Order"
msgstr "Commande"
@@ -3300,8 +3328,8 @@ msgstr "Commande"
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:331
-#: templates/js/translated/order.js:876 templates/js/translated/part.js:838
-#: templates/js/translated/stock.js:1865 templates/js/translated/stock.js:2716
+#: templates/js/translated/order.js:936 templates/js/translated/part.js:839
+#: templates/js/translated/stock.js:1821 templates/js/translated/stock.js:2672
msgid "Purchase Order"
msgstr "Commande d’achat"
@@ -3310,8 +3338,8 @@ msgid "Supplier part"
msgstr "Pièce fournisseur"
#: order/models.py:920 order/templates/order/order_base.html:163
-#: templates/js/translated/order.js:654 templates/js/translated/order.js:1226
-#: templates/js/translated/part.js:932 templates/js/translated/part.js:959
+#: templates/js/translated/order.js:714 templates/js/translated/order.js:1313
+#: templates/js/translated/part.js:933 templates/js/translated/part.js:960
#: templates/js/translated/table_filters.js:312
msgid "Received"
msgstr "Reçu"
@@ -3320,9 +3348,9 @@ msgstr "Reçu"
msgid "Number of items received"
msgstr "Nombre d'éléments reçus"
-#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:645
+#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:697
#: stock/serializers.py:170 stock/templates/stock/item_base.html:338
-#: templates/js/translated/stock.js:1919
+#: templates/js/translated/stock.js:1875
msgid "Purchase Price"
msgstr "Prix d'achat"
@@ -3456,11 +3484,11 @@ msgstr ""
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:273 templates/js/translated/order.js:514
+#: order/serializers.py:273 templates/js/translated/order.js:574
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:281 templates/js/translated/order.js:525
+#: order/serializers.py:281 templates/js/translated/order.js:585
msgid "Enter serial numbers for incoming stock items"
msgstr ""
@@ -3578,7 +3606,7 @@ msgstr ""
#: order/templates/order/order_base.html:94
#: order/templates/order/sales_order_base.html:89
-#: templates/js/translated/stock.js:2459
+#: templates/js/translated/stock.js:2415
msgid "Order Status"
msgstr "Statut de la commande"
@@ -3650,10 +3678,10 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/bom.js:76 templates/js/translated/build.js:380
-#: templates/js/translated/build.js:528 templates/js/translated/build.js:1547
-#: templates/js/translated/order.js:602 templates/js/translated/order.js:1605
-#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769
+#: templates/js/translated/bom.js:76 templates/js/translated/build.js:381
+#: templates/js/translated/build.js:529 templates/js/translated/build.js:1558
+#: templates/js/translated/order.js:662 templates/js/translated/order.js:1693
+#: templates/js/translated/stock.js:557 templates/js/translated/stock.js:725
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr "Supprimer la ligne"
@@ -3717,8 +3745,8 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:940 templates/js/translated/order.js:1403
-#: templates/js/translated/order.js:1533
+#: templates/js/translated/order.js:1000 templates/js/translated/order.js:1491
+#: templates/js/translated/order.js:1621
msgid "Items"
msgstr ""
@@ -3752,9 +3780,9 @@ msgid "Purchase Order Items"
msgstr "Articles de la commande d'achat"
#: order/templates/order/purchase_order_detail.html:27
-#: order/templates/order/purchase_order_detail.html:182
+#: order/templates/order/purchase_order_detail.html:166
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:245
+#: order/templates/order/sales_order_detail.html:233
msgid "Add Line Item"
msgstr ""
@@ -3794,7 +3822,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:122
-#: templates/js/translated/order.js:1361
+#: templates/js/translated/order.js:1449
msgid "Customer Reference"
msgstr ""
@@ -3827,7 +3855,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:48
-#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1465
+#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1466
msgid "Actions"
msgstr ""
@@ -3902,31 +3930,31 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:499
+#: part/api.py:502
msgid "Valid"
msgstr ""
-#: part/api.py:500
+#: part/api.py:503
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:505
+#: part/api.py:508
msgid "This option must be selected"
msgstr ""
-#: part/api.py:847
+#: part/api.py:866
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:851
+#: part/api.py:870
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:866
+#: part/api.py:885
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:897 part/api.py:901 part/api.py:916 part/api.py:920
+#: part/api.py:916 part/api.py:920 part/api.py:935 part/api.py:939
msgid "This field is required"
msgstr ""
@@ -3944,7 +3972,7 @@ msgid "Available Stock"
msgstr ""
#: part/bom.py:128 part/templates/part/part_base.html:203
-#: templates/js/translated/part.js:1323
+#: templates/js/translated/part.js:1324
msgid "On Order"
msgstr ""
@@ -3976,7 +4004,7 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:97 part/models.py:2571 part/templates/part/category.html:15
+#: part/models.py:97 part/models.py:2585 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -3993,7 +4021,7 @@ msgstr ""
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:37
-#: templates/js/translated/part.js:1685 templates/navbar.html:21
+#: templates/js/translated/part.js:1686 templates/navbar.html:21
#: templates/stats.html:92 templates/stats.html:101 users/models.py:41
msgid "Parts"
msgstr ""
@@ -4023,7 +4051,7 @@ msgstr "Le numéro de série le plus récent est"
msgid "Duplicate IPN not allowed in part settings"
msgstr "IPN dupliqué non autorisé dans les paramètres de la pièce"
-#: part/models.py:803 part/models.py:2624
+#: part/models.py:803 part/models.py:2638
msgid "Part name"
msgstr ""
@@ -4056,11 +4084,11 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:841 part/models.py:2321 part/models.py:2570
+#: part/models.py:841 part/models.py:2335 part/models.py:2584
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:223
-#: templates/js/translated/part.js:1290
+#: templates/js/translated/part.js:1291
msgid "Category"
msgstr "Catégorie"
@@ -4069,8 +4097,8 @@ msgid "Part category"
msgstr "Catégorie de la pièce"
#: part/models.py:847 part/templates/part/part_base.html:274
-#: templates/js/translated/part.js:618 templates/js/translated/part.js:1243
-#: templates/js/translated/stock.js:1683
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:1244
+#: templates/js/translated/stock.js:1639
msgid "IPN"
msgstr "IPN"
@@ -4083,7 +4111,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:855 part/templates/part/part_base.html:281
-#: report/models.py:200 templates/js/translated/part.js:622
+#: report/models.py:200 templates/js/translated/part.js:623
msgid "Revision"
msgstr "Révision"
@@ -4175,301 +4203,309 @@ msgstr ""
msgid "Sell multiple"
msgstr "Ventes multiples"
-#: part/models.py:2371
+#: part/models.py:2385
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2388
+#: part/models.py:2402
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2408 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:1311
+#: part/models.py:2422 templates/js/translated/part.js:1737
+#: templates/js/translated/stock.js:1267
msgid "Test Name"
msgstr "Nom de test"
-#: part/models.py:2409
+#: part/models.py:2423
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2414
+#: part/models.py:2428
msgid "Test Description"
msgstr ""
-#: part/models.py:2415
+#: part/models.py:2429
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2420 templates/js/translated/part.js:1745
+#: part/models.py:2434 templates/js/translated/part.js:1746
#: templates/js/translated/table_filters.js:276
msgid "Required"
msgstr "Requis"
-#: part/models.py:2421
+#: part/models.py:2435
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2426 templates/js/translated/part.js:1753
+#: part/models.py:2440 templates/js/translated/part.js:1754
msgid "Requires Value"
msgstr ""
-#: part/models.py:2427
+#: part/models.py:2441
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2432 templates/js/translated/part.js:1760
+#: part/models.py:2446 templates/js/translated/part.js:1761
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2433
+#: part/models.py:2447
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2444
+#: part/models.py:2458
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2480
+#: part/models.py:2494
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2488
+#: part/models.py:2502
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2495
+#: part/models.py:2509
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2525
+#: part/models.py:2539
msgid "Parent Part"
msgstr ""
-#: part/models.py:2527 part/models.py:2576 part/models.py:2577
+#: part/models.py:2541 part/models.py:2590 part/models.py:2591
#: templates/InvenTree/settings/settings.html:218
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2529
+#: part/models.py:2543
msgid "Data"
msgstr "Données"
-#: part/models.py:2529
+#: part/models.py:2543
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2581 templates/InvenTree/settings/settings.html:227
+#: part/models.py:2595 templates/InvenTree/settings/settings.html:227
msgid "Default Value"
msgstr ""
-#: part/models.py:2582
+#: part/models.py:2596
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2616
+#: part/models.py:2630
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2619 templates/js/translated/model_renderers.js:182
+#: part/models.py:2633 templates/js/translated/model_renderers.js:182
msgid "Part ID"
msgstr ""
-#: part/models.py:2620
+#: part/models.py:2634
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2623
+#: part/models.py:2637
msgid "Part Name"
msgstr ""
-#: part/models.py:2627
+#: part/models.py:2641
msgid "Part IPN"
msgstr ""
-#: part/models.py:2628
+#: part/models.py:2642
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2645
msgid "Level"
msgstr ""
-#: part/models.py:2632
+#: part/models.py:2646
msgid "BOM level"
msgstr ""
-#: part/models.py:2692
+#: part/models.py:2707
msgid "Select parent part"
msgstr ""
-#: part/models.py:2700
+#: part/models.py:2715
msgid "Sub part"
msgstr ""
-#: part/models.py:2701
+#: part/models.py:2716
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2707
+#: part/models.py:2722
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2709 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:791 templates/js/translated/bom.js:865
+#: part/models.py:2724 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2709
+#: part/models.py:2724
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2712 part/templates/part/upload_bom.html:55
+#: part/models.py:2727 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2713
+#: part/models.py:2728
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2716
+#: part/models.py:2731
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2719
+#: part/models.py:2734
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2721
+#: part/models.py:2736
msgid "Checksum"
msgstr ""
-#: part/models.py:2721
+#: part/models.py:2736
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2725 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:882
+#: part/models.py:2740 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:880
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2726
+#: part/models.py:2741
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2731 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:874
+#: part/models.py:2746 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:872
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2732
+#: part/models.py:2747
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2817 stock/models.py:394
+#: part/models.py:2832 stock/models.py:446
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2826 part/models.py:2828
+#: part/models.py:2841 part/models.py:2843
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2957
+#: part/models.py:2972
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2979
+#: part/models.py:2994
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2991
+#: part/models.py:3006
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2999
+#: part/models.py:3014
msgid "Substitute part"
msgstr ""
-#: part/models.py:3010
+#: part/models.py:3025
msgid "Part 1"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3029
msgid "Part 2"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3029
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3046
+#: part/models.py:3061
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
-#: part/serializers.py:667
+#: part/serializers.py:670
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:678
+#: part/serializers.py:681
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:679
+#: part/serializers.py:682
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:684
+#: part/serializers.py:687
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:685
+#: part/serializers.py:688
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:690
+#: part/serializers.py:693
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:691
+#: part/serializers.py:694
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:699
+msgid "Copy Substitute Parts"
+msgstr ""
+
+#: part/serializers.py:700
+msgid "Copy substitute parts when duplicate BOM items"
+msgstr ""
+
+#: part/serializers.py:744
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:735
+#: part/serializers.py:745
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:762
+#: part/serializers.py:772
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:805
+#: part/serializers.py:815
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:808
+#: part/serializers.py:818
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:811
+#: part/serializers.py:821
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:820
+#: part/serializers.py:830
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:828
+#: part/serializers.py:838
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:847
+#: part/serializers.py:857
msgid "At least one BOM item is required"
msgstr ""
@@ -4496,7 +4532,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:279
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:274
msgid "BOM actions"
msgstr ""
@@ -4548,7 +4584,7 @@ msgstr ""
msgid "Top level part category"
msgstr ""
-#: part/templates/part/category.html:114 part/templates/part/category.html:205
+#: part/templates/part/category.html:114 part/templates/part/category.html:202
#: part/templates/part/category_sidebar.html:7
msgid "Subcategories"
msgstr ""
@@ -4557,55 +4593,51 @@ msgstr ""
msgid "Parts (Including subcategories)"
msgstr ""
-#: part/templates/part/category.html:156
-msgid "Export Part Data"
-msgstr ""
-
-#: part/templates/part/category.html:157 part/templates/part/category.html:181
-msgid "Export"
-msgstr "Exporter"
-
-#: part/templates/part/category.html:160
+#: part/templates/part/category.html:157
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:161 templates/js/translated/bom.js:365
+#: part/templates/part/category.html:158 templates/js/translated/bom.js:365
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:175
+#: part/templates/part/category.html:172
msgid "Set category"
msgstr ""
-#: part/templates/part/category.html:175
+#: part/templates/part/category.html:172
msgid "Set Category"
msgstr ""
-#: part/templates/part/category.html:179
+#: part/templates/part/category.html:176
msgid "Print Labels"
msgstr ""
-#: part/templates/part/category.html:181
+#: part/templates/part/category.html:178
+msgid "Export"
+msgstr "Exporter"
+
+#: part/templates/part/category.html:178
msgid "Export Data"
msgstr ""
-#: part/templates/part/category.html:195
+#: part/templates/part/category.html:192
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:288
+#: part/templates/part/category.html:285
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:315
+#: part/templates/part/category.html:305
msgid "Create Part"
msgstr ""
-#: part/templates/part/category.html:318
+#: part/templates/part/category.html:308
msgid "Create another part after this one"
msgstr ""
-#: part/templates/part/category.html:319
+#: part/templates/part/category.html:309
msgid "Part created successfully"
msgstr ""
@@ -4676,155 +4708,150 @@ msgstr ""
msgid "Part Stock"
msgstr ""
-#: part/templates/part/detail.html:33
-#, python-format
-msgid "Showing stock for all variants of %(full_name)s"
-msgstr ""
-
-#: part/templates/part/detail.html:43
+#: part/templates/part/detail.html:38
msgid "Part Stock Allocations"
msgstr ""
-#: part/templates/part/detail.html:60
+#: part/templates/part/detail.html:55
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:65
+#: part/templates/part/detail.html:60
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:122
+#: part/templates/part/detail.html:117
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:168
+#: part/templates/part/detail.html:163
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:172
+#: part/templates/part/detail.html:167
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:173
+#: part/templates/part/detail.html:168
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:200
+#: part/templates/part/detail.html:195
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:237 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:52
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:241 part/templates/part/detail.html:242
+#: part/templates/part/detail.html:236 part/templates/part/detail.html:237
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:262 part/templates/part/part_sidebar.html:18
+#: part/templates/part/detail.html:257 part/templates/part/part_sidebar.html:18
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:267
+#: part/templates/part/detail.html:262
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:271 templates/js/translated/bom.js:283
+#: part/templates/part/detail.html:266 templates/js/translated/bom.js:283
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:268
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:283
+#: part/templates/part/detail.html:278
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:285 templates/js/translated/part.js:272
+#: part/templates/part/detail.html:279 templates/js/translated/part.js:272
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:287
+#: part/templates/part/detail.html:280
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:285
msgid "New BOM Item"
msgstr ""
-#: part/templates/part/detail.html:293
+#: part/templates/part/detail.html:286
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:306
+#: part/templates/part/detail.html:299
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:323
+#: part/templates/part/detail.html:316
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:348
+#: part/templates/part/detail.html:341
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:363
+#: part/templates/part/detail.html:356
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:391
+#: part/templates/part/detail.html:384
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:407
+#: part/templates/part/detail.html:400
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:589
+#: part/templates/part/detail.html:582
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:590
+#: part/templates/part/detail.html:583
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:639
+#: part/templates/part/detail.html:632
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:696
+#: part/templates/part/detail.html:689
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:704
+#: part/templates/part/detail.html:697
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:801
+#: part/templates/part/detail.html:794
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:858
+#: part/templates/part/detail.html:844
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:971
+#: part/templates/part/detail.html:957
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:983
+#: part/templates/part/detail.html:969
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:995
+#: part/templates/part/detail.html:981
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1084
+#: part/templates/part/detail.html:1070
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4969,7 +4996,7 @@ msgstr ""
#: templates/js/translated/company.js:508
#: templates/js/translated/company.js:765
#: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:533 templates/js/translated/part.js:610
+#: templates/js/translated/part.js:534 templates/js/translated/part.js:611
msgid "Inactive"
msgstr ""
@@ -4983,7 +5010,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2356
+#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2444
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5000,12 +5027,12 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:903
+#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:901
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1154
-#: templates/js/translated/part.js:1327
+#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1155
+#: templates/js/translated/part.js:1328
msgid "Building"
msgstr ""
@@ -5057,7 +5084,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:857
+#: templates/js/translated/bom.js:855
msgid "No supplier pricing available"
msgstr ""
@@ -5177,7 +5204,7 @@ msgstr "Afficher le prix de vente"
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:851
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849
msgid "Supplier Cost"
msgstr ""
@@ -5199,7 +5226,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1390
+#: part/templates/part/prices.html:215 part/views.py:1325
msgid "Add Internal Price Break"
msgstr ""
@@ -5219,9 +5246,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813
-#: templates/js/translated/part.js:497 templates/js/translated/part.js:1144
-#: templates/js/translated/part.js:1331
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811
+#: templates/js/translated/part.js:498 templates/js/translated/part.js:1145
+#: templates/js/translated/part.js:1332
msgid "No Stock"
msgstr ""
@@ -5275,100 +5302,100 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:172
+#: part/templatetags/inventree_extras.py:174
msgid "Unknown database"
msgstr ""
-#: part/views.py:90
+#: part/views.py:88
msgid "Set Part Category"
msgstr ""
-#: part/views.py:140
+#: part/views.py:138
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:212
+#: part/views.py:210
msgid "Match References"
msgstr ""
-#: part/views.py:509
+#: part/views.py:507
msgid "None"
msgstr ""
-#: part/views.py:568
+#: part/views.py:566
msgid "Part QR Code"
msgstr ""
-#: part/views.py:670
+#: part/views.py:668
msgid "Select Part Image"
msgstr ""
-#: part/views.py:696
+#: part/views.py:694
msgid "Updated part image"
msgstr ""
-#: part/views.py:699
+#: part/views.py:697
msgid "Part image not found"
msgstr ""
-#: part/views.py:850
+#: part/views.py:785
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:857
+#: part/views.py:792
msgid "Part was deleted"
msgstr ""
-#: part/views.py:866
+#: part/views.py:801
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1015
+#: part/views.py:950
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1025
+#: part/views.py:960
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1032
+#: part/views.py:967
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1091 templates/js/translated/part.js:315
+#: part/views.py:1026 templates/js/translated/part.js:315
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1129
+#: part/views.py:1064
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1135
+#: part/views.py:1070
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1144
+#: part/views.py:1079
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1245
+#: part/views.py:1180
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1301
+#: part/views.py:1236
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1323
+#: part/views.py:1258
msgid "Added new price break"
msgstr ""
-#: part/views.py:1399
+#: part/views.py:1334
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1407
+#: part/views.py:1342
msgid "Delete Internal Price Break"
msgstr ""
@@ -5574,12 +5601,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:556 stock/templates/stock/item_base.html:151
-#: templates/js/translated/build.js:373 templates/js/translated/build.js:521
-#: templates/js/translated/build.js:919 templates/js/translated/build.js:1295
+#: stock/models.py:608 stock/templates/stock/item_base.html:151
+#: templates/js/translated/build.js:374 templates/js/translated/build.js:522
+#: templates/js/translated/build.js:920 templates/js/translated/build.js:1296
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:99 templates/js/translated/order.js:2062
-#: templates/js/translated/order.js:2151 templates/js/translated/stock.js:423
+#: templates/js/translated/order.js:99 templates/js/translated/order.js:2150
+#: templates/js/translated/order.js:2239 templates/js/translated/stock.js:422
msgid "Serial Number"
msgstr "Numéro de série"
@@ -5588,19 +5615,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:2052
+#: stock/models.py:2104
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:2058
+#: stock/models.py:2110
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:50
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:924 templates/js/translated/stock.js:2657
+#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2613
msgid "Date"
msgstr ""
@@ -5618,26 +5645,26 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756
-#: templates/js/translated/stock.js:2910
+#: templates/js/translated/stock.js:542 templates/js/translated/stock.js:712
+#: templates/js/translated/stock.js:2866
msgid "Serial"
msgstr ""
-#: stock/api.py:501
+#: stock/api.py:503
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:508
+#: stock/api.py:510
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:533
+#: stock/api.py:535
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/forms.py:74 stock/forms.py:198 stock/models.py:613
+#: stock/forms.py:74 stock/forms.py:198 stock/models.py:665
#: stock/templates/stock/item_base.html:188
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1791
msgid "Expiry Date"
msgstr ""
@@ -5677,228 +5704,228 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:62 stock/models.py:650
+#: stock/models.py:62 stock/models.py:702
#: stock/templates/stock/item_base.html:402
msgid "Owner"
msgstr "Propriétaire"
-#: stock/models.py:63 stock/models.py:651
+#: stock/models.py:63 stock/models.py:703
msgid "Select Owner"
msgstr "Sélectionner un propriétaire"
-#: stock/models.py:375
+#: stock/models.py:427
msgid "StockItem with this serial number already exists"
msgstr "Il existe déjà un article en stock avec ce numéro de série"
-#: stock/models.py:411
+#: stock/models.py:463
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:421 stock/models.py:430
+#: stock/models.py:473 stock/models.py:482
msgid "Quantity must be 1 for item with a serial number"
msgstr "La quantité doit être de 1 pour un article avec un numéro de série"
-#: stock/models.py:422
+#: stock/models.py:474
msgid "Serial number cannot be set if quantity greater than 1"
msgstr "Le numéro de série ne peut pas être défini si la quantité est supérieure à 1"
-#: stock/models.py:444
+#: stock/models.py:496
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:450
+#: stock/models.py:502
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:457
+#: stock/models.py:509
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:500
+#: stock/models.py:552
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:509
+#: stock/models.py:561
msgid "Base part"
msgstr ""
-#: stock/models.py:517
+#: stock/models.py:569
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:523 stock/templates/stock/location.html:16
+#: stock/models.py:575 stock/templates/stock/location.html:16
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:526
+#: stock/models.py:578
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:585
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:539 stock/templates/stock/item_base.html:277
+#: stock/models.py:591 stock/templates/stock/item_base.html:277
msgid "Installed In"
msgstr ""
-#: stock/models.py:542
+#: stock/models.py:594
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:558
+#: stock/models.py:610
msgid "Serial number for this item"
msgstr "Numéro de série pour cet article"
-#: stock/models.py:572
+#: stock/models.py:624
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:576
+#: stock/models.py:628
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:585
+#: stock/models.py:637
msgid "Source Build"
msgstr ""
-#: stock/models.py:587
+#: stock/models.py:639
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:598
+#: stock/models.py:650
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:601
+#: stock/models.py:653
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:607
+#: stock/models.py:659
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:614
+#: stock/models.py:666
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:627
+#: stock/models.py:679
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:627
+#: stock/models.py:679
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:637 stock/templates/stock/item.html:121
+#: stock/models.py:689 stock/templates/stock/item.html:121
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:646
+#: stock/models.py:698
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1171
+#: stock/models.py:1223
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1177
+#: stock/models.py:1229
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1183
+#: stock/models.py:1235
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1186
+#: stock/models.py:1238
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:1189
+#: stock/models.py:1241
msgid "Quantity does not match serial numbers"
msgstr "La quantité ne correspond pas au nombre de numéros de série"
-#: stock/models.py:1196
+#: stock/models.py:1248
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr "Les numéros de série existent déja : {exists}"
-#: stock/models.py:1267
+#: stock/models.py:1319
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1270
+#: stock/models.py:1322
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1273
+#: stock/models.py:1325
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1276
+#: stock/models.py:1328
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1279
+#: stock/models.py:1331
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1282
+#: stock/models.py:1334
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1289 stock/serializers.py:832
+#: stock/models.py:1341 stock/serializers.py:832
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1293
+#: stock/models.py:1345
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1297
+#: stock/models.py:1349
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1301
+#: stock/models.py:1353
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1473
+#: stock/models.py:1525
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1972
+#: stock/models.py:2024
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2029
+#: stock/models.py:2081
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2035
+#: stock/models.py:2087
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2053
+#: stock/models.py:2105
msgid "Test name"
msgstr ""
-#: stock/models.py:2059
+#: stock/models.py:2111
msgid "Test result"
msgstr ""
-#: stock/models.py:2065
+#: stock/models.py:2117
msgid "Test output value"
msgstr ""
-#: stock/models.py:2072
+#: stock/models.py:2124
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2078
+#: stock/models.py:2130
msgid "Test notes"
msgstr ""
@@ -5935,7 +5962,7 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr "Les numéros de série ne peuvent pas être assignés à cette pièce"
-#: stock/serializers.py:363 stock/views.py:1127
+#: stock/serializers.py:363 stock/views.py:1009
msgid "Serial numbers already exist"
msgstr "Les numéros de série existent déjà"
@@ -6052,11 +6079,11 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:147 templates/js/translated/stock.js:3019
+#: stock/templates/stock/item.html:147 templates/js/translated/stock.js:2975
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1479
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1435
msgid "Add Test Result"
msgstr ""
@@ -6070,7 +6097,7 @@ msgstr ""
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:46 templates/stock_table.html:24
+#: stock/templates/stock/item_base.html:46 templates/stock_table.html:21
msgid "Scan to Location"
msgstr ""
@@ -6083,15 +6110,15 @@ msgid "Stock adjustment actions"
msgstr ""
#: stock/templates/stock/item_base.html:69
-#: stock/templates/stock/location.html:52 templates/stock_table.html:50
+#: stock/templates/stock/location.html:52 templates/stock_table.html:47
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48
+#: stock/templates/stock/item_base.html:72 templates/stock_table.html:45
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49
+#: stock/templates/stock/item_base.html:75 templates/stock_table.html:46
msgid "Remove stock"
msgstr ""
@@ -6100,11 +6127,11 @@ msgid "Serialize stock"
msgstr ""
#: stock/templates/stock/item_base.html:82
-#: stock/templates/stock/location.html:58 templates/stock_table.html:51
+#: stock/templates/stock/location.html:58 templates/stock_table.html:48
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85 templates/stock_table.html:54
+#: stock/templates/stock/item_base.html:85 templates/stock_table.html:51
msgid "Assign to customer"
msgstr ""
@@ -6181,7 +6208,7 @@ msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:201
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1807
msgid "Last Updated"
msgstr ""
@@ -6218,7 +6245,7 @@ msgid "This stock item is serialized - it has a unique serial number and the qua
msgstr "Cet article de stock est sérialisé - il a un numéro de série unique et la quantité ne peut pas être ajustée."
#: stock/templates/stock/item_base.html:296
-#: templates/js/translated/build.js:1317
+#: templates/js/translated/build.js:1318
msgid "No location set"
msgstr ""
@@ -6320,11 +6347,11 @@ msgstr ""
msgid "Stock Locations"
msgstr ""
-#: stock/templates/stock/location.html:185 templates/stock_table.html:30
+#: stock/templates/stock/location.html:185 templates/stock_table.html:27
msgid "Printing Actions"
msgstr ""
-#: stock/templates/stock/location.html:189 templates/stock_table.html:34
+#: stock/templates/stock/location.html:189 templates/stock_table.html:31
msgid "Print labels"
msgstr ""
@@ -6348,7 +6375,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:749
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:631
msgid "Convert Stock Item"
msgstr ""
@@ -6369,95 +6396,95 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181 templates/js/translated/stock.js:139
+#: stock/views.py:152 templates/js/translated/stock.js:138
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:728 stock/views.py:854 stock/views.py:1136
+#: stock/views.py:259 stock/views.py:610 stock/views.py:736 stock/views.py:1018
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:274
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:293
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:302
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:342
+#: stock/views.py:313
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:353
+#: stock/views.py:324
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:370
+#: stock/views.py:341
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:371
+#: stock/views.py:342
msgid "Check the confirmation box"
msgstr "Cocher la case de confirmation"
-#: stock/views.py:475
+#: stock/views.py:357
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:500
+#: stock/views.py:382
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:597 templates/js/translated/stock.js:1074
+#: stock/views.py:479 templates/js/translated/stock.js:1030
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:608
+#: stock/views.py:490
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:630 templates/js/translated/stock.js:332
+#: stock/views.py:512 templates/js/translated/stock.js:331
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:780
+#: stock/views.py:662
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:881
+#: stock/views.py:763
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1023 templates/js/translated/stock.js:312
+#: stock/views.py:905 templates/js/translated/stock.js:311
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1105
+#: stock/views.py:987
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1205
+#: stock/views.py:1087
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1218
+#: stock/views.py:1100
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1229
+#: stock/views.py:1111
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1236
+#: stock/views.py:1118
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1245
+#: stock/views.py:1127
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -7381,14 +7408,14 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1335
+#: templates/js/translated/bom.js:1340
msgid "Required Quantity"
msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:804 templates/js/translated/build.js:1411
-#: templates/js/translated/build.js:2057
+#: templates/js/translated/bom.js:802 templates/js/translated/build.js:1412
+#: templates/js/translated/build.js:2110
#: templates/js/translated/table_filters.js:178
msgid "Available"
msgstr "Disponible"
@@ -7580,7 +7607,7 @@ msgstr "Ceci supprimera l'association entre cet article de stock et le code-barr
msgid "Unlink"
msgstr "Délier"
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:982
msgid "Remove stock item"
msgstr "Supprimer l'article de stock"
@@ -7635,12 +7662,12 @@ msgid "Download BOM Template"
msgstr "Télécharger le template de la BOM"
#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286
-#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518
+#: templates/js/translated/order.js:429 templates/js/translated/tables.js:53
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519
+#: templates/js/translated/order.js:430
msgid "Select file format"
msgstr "Sélectionner un format de fichier"
@@ -7716,275 +7743,307 @@ msgstr ""
msgid "Edit BOM Item Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:741
+#: templates/js/translated/bom.js:739
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:745 templates/js/translated/build.js:1393
+#: templates/js/translated/bom.js:743 templates/js/translated/build.js:1394
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:750
+#: templates/js/translated/bom.js:748
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:822
+#: templates/js/translated/bom.js:820
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:837
+#: templates/js/translated/bom.js:835
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:844
+#: templates/js/translated/bom.js:842
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:893 templates/js/translated/bom.js:982
+#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:953
+#: templates/js/translated/bom.js:951
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:955
+#: templates/js/translated/bom.js:953
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:957
+#: templates/js/translated/bom.js:955
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138
+#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:961 templates/js/translated/bom.js:1121
+#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1060 templates/js/translated/build.js:1137
+#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1138
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1116
+#: templates/js/translated/bom.js:1121
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:1318 templates/js/translated/build.js:1377
+#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1378
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1340
+#: templates/js/translated/bom.js:1345
msgid "Inherited from parent BOM"
msgstr ""
-#: templates/js/translated/build.js:85
+#: templates/js/translated/build.js:86
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:119
+#: templates/js/translated/build.js:120
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:140
+#: templates/js/translated/build.js:141
msgid "Build order is ready to be completed"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:146
msgid "Build Order is incomplete"
msgstr ""
-#: templates/js/translated/build.js:173
+#: templates/js/translated/build.js:174
msgid "Complete Build Order"
msgstr ""
-#: templates/js/translated/build.js:214 templates/js/translated/stock.js:92
-#: templates/js/translated/stock.js:181
+#: templates/js/translated/build.js:215 templates/js/translated/stock.js:91
+#: templates/js/translated/stock.js:180
msgid "Next available serial number"
msgstr "Prochain numéro de série disponible"
-#: templates/js/translated/build.js:216 templates/js/translated/stock.js:94
-#: templates/js/translated/stock.js:183
+#: templates/js/translated/build.js:217 templates/js/translated/stock.js:93
+#: templates/js/translated/stock.js:182
msgid "Latest serial number"
msgstr "Dernier numéro de série"
-#: templates/js/translated/build.js:225
+#: templates/js/translated/build.js:226
msgid "The Bill of Materials contains trackable parts"
msgstr "La BOM contient des pièces traçables"
-#: templates/js/translated/build.js:226
+#: templates/js/translated/build.js:227
msgid "Build outputs must be generated individually"
msgstr ""
-#: templates/js/translated/build.js:234
+#: templates/js/translated/build.js:235
msgid "Trackable parts can have serial numbers specified"
msgstr "Les pièces traçables peuvent avoir des numéros de série spécifiés"
-#: templates/js/translated/build.js:235
+#: templates/js/translated/build.js:236
msgid "Enter serial numbers to generate multiple single build outputs"
msgstr ""
-#: templates/js/translated/build.js:242
+#: templates/js/translated/build.js:243
msgid "Create Build Output"
msgstr ""
-#: templates/js/translated/build.js:273
+#: templates/js/translated/build.js:274
msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:284
+#: templates/js/translated/build.js:285
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:293
+#: templates/js/translated/build.js:294
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:301
+#: templates/js/translated/build.js:302
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:324
+#: templates/js/translated/build.js:325
msgid "Are you sure you wish to unallocate stock items from this build?"
msgstr ""
-#: templates/js/translated/build.js:342
+#: templates/js/translated/build.js:343
msgid "Unallocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:360 templates/js/translated/build.js:508
+#: templates/js/translated/build.js:361 templates/js/translated/build.js:509
msgid "Select Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:361 templates/js/translated/build.js:509
+#: templates/js/translated/build.js:362 templates/js/translated/build.js:510
msgid "At least one build output must be selected"
msgstr ""
-#: templates/js/translated/build.js:415 templates/js/translated/build.js:563
+#: templates/js/translated/build.js:416 templates/js/translated/build.js:564
msgid "Output"
msgstr ""
-#: templates/js/translated/build.js:431
+#: templates/js/translated/build.js:432
msgid "Complete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:576
+#: templates/js/translated/build.js:577
msgid "Delete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:665
+#: templates/js/translated/build.js:666
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:703 templates/js/translated/order.js:1965
+#: templates/js/translated/build.js:704 templates/js/translated/order.js:2053
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:885
+#: templates/js/translated/build.js:886
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1334 templates/js/translated/build.js:2068
-#: templates/js/translated/order.js:2099
+#: templates/js/translated/build.js:1335 templates/js/translated/build.js:2121
+#: templates/js/translated/order.js:2187
msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1336 templates/js/translated/build.js:2069
-#: templates/js/translated/order.js:2100
+#: templates/js/translated/build.js:1337 templates/js/translated/build.js:2122
+#: templates/js/translated/order.js:2188
msgid "Delete stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1354
+#: templates/js/translated/build.js:1355
msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:1364
+#: templates/js/translated/build.js:1365
msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:1389
+#: templates/js/translated/build.js:1390
msgid "Substitute parts available"
msgstr ""
-#: templates/js/translated/build.js:1406
+#: templates/js/translated/build.js:1407
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1416 templates/js/translated/build.js:1656
-#: templates/js/translated/build.js:2064 templates/js/translated/order.js:2366
+#: templates/js/translated/build.js:1417 templates/js/translated/build.js:1667
+#: templates/js/translated/build.js:2117 templates/js/translated/order.js:2454
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1472 templates/js/translated/order.js:2446
+#: templates/js/translated/build.js:1473 templates/js/translated/order.js:2534
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:1476 templates/stock_table.html:53
+#: templates/js/translated/build.js:1477 templates/stock_table.html:50
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1479 templates/js/translated/order.js:2439
+#: templates/js/translated/build.js:1480 templates/js/translated/order.js:2527
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:1558 templates/js/translated/order.js:1616
-msgid "Specify stock allocation quantity"
-msgstr ""
-
-#: templates/js/translated/build.js:1629 templates/js/translated/label.js:134
-#: templates/js/translated/order.js:1667 templates/js/translated/report.js:225
+#: templates/js/translated/build.js:1519 templates/js/translated/label.js:134
+#: templates/js/translated/order.js:1755 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1630 templates/js/translated/order.js:1668
+#: templates/js/translated/build.js:1520 templates/js/translated/order.js:1756
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:1644 templates/js/translated/order.js:1682
+#: templates/js/translated/build.js:1569 templates/js/translated/order.js:1704
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:1640
+msgid "All Parts Allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:1641
+msgid "All selected parts have been fully allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:1655 templates/js/translated/order.js:1770
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1717
+#: templates/js/translated/build.js:1684 templates/js/translated/order.js:1805
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1674
+#: templates/js/translated/build.js:1685
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1730
+#: templates/js/translated/build.js:1696 templates/js/translated/order.js:1818
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1757 templates/js/translated/order.js:1807
+#: templates/js/translated/build.js:1768 templates/js/translated/order.js:1895
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1875
+#: templates/js/translated/build.js:1865
+msgid "Automatic Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1866
+msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
+msgstr ""
+
+#: templates/js/translated/build.js:1868
+msgid "If a location is specifed, stock will only be allocated from that location"
+msgstr ""
+
+#: templates/js/translated/build.js:1869
+msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
+msgstr ""
+
+#: templates/js/translated/build.js:1870
+msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
+msgstr ""
+
+#: templates/js/translated/build.js:1890
+msgid "Allocate Stock Items"
+msgstr ""
+
+#: templates/js/translated/build.js:1928
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1892 templates/js/translated/part.js:1235
-#: templates/js/translated/part.js:1646 templates/js/translated/stock.js:1643
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/build.js:1945 templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1647 templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:2567
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1912
+#: templates/js/translated/build.js:1965
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1976 templates/js/translated/stock.js:2823
+#: templates/js/translated/build.js:2029 templates/js/translated/stock.js:2779
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1988
+#: templates/js/translated/build.js:2041
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:2045
+#: templates/js/translated/build.js:2098
msgid "No parts allocated for"
msgstr ""
@@ -8049,34 +8108,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:517
-#: templates/js/translated/part.js:602
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:518
+#: templates/js/translated/part.js:603
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:521
-#: templates/js/translated/part.js:606
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:522
+#: templates/js/translated/part.js:607
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:696
+#: templates/js/translated/company.js:631 templates/js/translated/part.js:697
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:738
+#: templates/js/translated/company.js:668 templates/js/translated/part.js:739
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:739
+#: templates/js/translated/company.js:669 templates/js/translated/part.js:740
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:756
+#: templates/js/translated/company.js:688 templates/js/translated/part.js:757
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:768
+#: templates/js/translated/company.js:699 templates/js/translated/part.js:769
msgid "Delete Parameter"
msgstr ""
@@ -8085,12 +8144,12 @@ msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:429
+#: templates/js/translated/filters.js:441
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:430
+#: templates/js/translated/filters.js:442
msgid "false"
msgstr ""
@@ -8098,19 +8157,23 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:286
+#: templates/js/translated/filters.js:288
+msgid "Download data"
+msgstr ""
+
+#: templates/js/translated/filters.js:291
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:290
+#: templates/js/translated/filters.js:295
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:293
+#: templates/js/translated/filters.js:298
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:338
+#: templates/js/translated/filters.js:350
msgid "Create filter"
msgstr ""
@@ -8181,7 +8244,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1050
+#: templates/js/translated/stock.js:1006
msgid "Select Stock Items"
msgstr ""
@@ -8354,206 +8417,214 @@ msgstr ""
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:366
+#: templates/js/translated/order.js:426
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:460
+#: templates/js/translated/order.js:520
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:461
+#: templates/js/translated/order.js:521
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:481 templates/js/translated/order.js:580
+#: templates/js/translated/order.js:541 templates/js/translated/order.js:640
msgid "Add batch code"
msgstr ""
-#: templates/js/translated/order.js:487 templates/js/translated/order.js:591
+#: templates/js/translated/order.js:547 templates/js/translated/order.js:651
msgid "Add serial numbers"
msgstr ""
-#: templates/js/translated/order.js:499
+#: templates/js/translated/order.js:559
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:563 templates/js/translated/stock.js:2263
+#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2219
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:652
+#: templates/js/translated/order.js:712
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:653
+#: templates/js/translated/order.js:713
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:655
+#: templates/js/translated/order.js:715
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/order.js:674
+#: templates/js/translated/order.js:734
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:675
+#: templates/js/translated/order.js:735
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:865 templates/js/translated/part.js:809
+#: templates/js/translated/order.js:925 templates/js/translated/part.js:810
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:890 templates/js/translated/order.js:1338
+#: templates/js/translated/order.js:950 templates/js/translated/order.js:1426
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:1018 templates/js/translated/order.js:2496
+#: templates/js/translated/order.js:1074 templates/js/translated/order.js:2585
+msgid "Duplicate Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:1104 templates/js/translated/order.js:2607
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1030 templates/js/translated/order.js:2507
+#: templates/js/translated/order.js:1117 templates/js/translated/order.js:2618
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:1073
+#: templates/js/translated/order.js:1160
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:1100 templates/js/translated/order.js:2255
+#: templates/js/translated/order.js:1187 templates/js/translated/order.js:2343
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:1154 templates/js/translated/order.js:2280
-#: templates/js/translated/part.js:1863 templates/js/translated/part.js:2074
+#: templates/js/translated/order.js:1241 templates/js/translated/order.js:2368
+#: templates/js/translated/part.js:1864 templates/js/translated/part.js:2075
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1169 templates/js/translated/order.js:2296
+#: templates/js/translated/order.js:1256 templates/js/translated/order.js:2384
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:1210 templates/js/translated/order.js:2338
-#: templates/js/translated/part.js:918
+#: templates/js/translated/order.js:1297 templates/js/translated/order.js:2426
+#: templates/js/translated/part.js:919
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:1269 templates/js/translated/part.js:964
+#: templates/js/translated/order.js:1356 templates/js/translated/part.js:965
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1273 templates/js/translated/order.js:2452
+#: templates/js/translated/order.js:1360 templates/js/translated/order.js:2540
+msgid "Duplicate line item"
+msgstr ""
+
+#: templates/js/translated/order.js:1361 templates/js/translated/order.js:2541
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:1274 templates/js/translated/order.js:2456
+#: templates/js/translated/order.js:1362 templates/js/translated/order.js:2545
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1314
+#: templates/js/translated/order.js:1402
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1352
+#: templates/js/translated/order.js:1440
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1439
+#: templates/js/translated/order.js:1527
msgid "Edit shipment"
msgstr ""
-#: templates/js/translated/order.js:1442
+#: templates/js/translated/order.js:1530
msgid "Complete shipment"
msgstr ""
-#: templates/js/translated/order.js:1447
+#: templates/js/translated/order.js:1535
msgid "Delete shipment"
msgstr ""
-#: templates/js/translated/order.js:1467
+#: templates/js/translated/order.js:1555
msgid "Edit Shipment"
msgstr ""
-#: templates/js/translated/order.js:1484
+#: templates/js/translated/order.js:1572
msgid "Delete Shipment"
msgstr ""
-#: templates/js/translated/order.js:1518
+#: templates/js/translated/order.js:1606
msgid "No matching shipments found"
msgstr ""
-#: templates/js/translated/order.js:1528
+#: templates/js/translated/order.js:1616
msgid "Shipment Reference"
msgstr ""
-#: templates/js/translated/order.js:1552
+#: templates/js/translated/order.js:1640
msgid "Not shipped"
msgstr ""
-#: templates/js/translated/order.js:1558
+#: templates/js/translated/order.js:1646
msgid "Tracking"
msgstr ""
-#: templates/js/translated/order.js:1718
+#: templates/js/translated/order.js:1806
msgid "Allocate Stock Items to Sales Order"
msgstr ""
-#: templates/js/translated/order.js:1926
+#: templates/js/translated/order.js:2014
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:2015
+#: templates/js/translated/order.js:2103
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:2032
+#: templates/js/translated/order.js:2120
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:2033
+#: templates/js/translated/order.js:2121
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:2076 templates/js/translated/order.js:2165
-#: templates/js/translated/stock.js:1559
+#: templates/js/translated/order.js:2164 templates/js/translated/order.js:2253
+#: templates/js/translated/stock.js:1515
msgid "Shipped to customer"
msgstr "Livré au client"
-#: templates/js/translated/order.js:2084 templates/js/translated/order.js:2174
+#: templates/js/translated/order.js:2172 templates/js/translated/order.js:2262
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:2436
+#: templates/js/translated/order.js:2524
msgid "Allocate serial numbers"
msgstr "Allouer des numéros de série"
-#: templates/js/translated/order.js:2442
+#: templates/js/translated/order.js:2530
msgid "Purchase stock"
msgstr "Acheter du stock"
-#: templates/js/translated/order.js:2449 templates/js/translated/order.js:2616
+#: templates/js/translated/order.js:2537 templates/js/translated/order.js:2727
msgid "Calculate price"
msgstr "Calculer le prix"
-#: templates/js/translated/order.js:2460
+#: templates/js/translated/order.js:2549
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:2463
+#: templates/js/translated/order.js:2552
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:2522
+#: templates/js/translated/order.js:2633
msgid "Allocate Serial Numbers"
msgstr "Allouer des numéros de série"
-#: templates/js/translated/order.js:2624
+#: templates/js/translated/order.js:2735
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:2638
+#: templates/js/translated/order.js:2749
msgid "No matching line items"
msgstr ""
@@ -8677,117 +8748,117 @@ msgstr ""
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:481
+#: templates/js/translated/part.js:482
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:509 templates/js/translated/part.js:594
+#: templates/js/translated/part.js:510 templates/js/translated/part.js:595
msgid "Trackable part"
msgstr "Pièce traçable"
-#: templates/js/translated/part.js:513 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:514 templates/js/translated/part.js:599
msgid "Virtual part"
msgstr "Pièce virtuelle"
-#: templates/js/translated/part.js:525
+#: templates/js/translated/part.js:526
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:529
+#: templates/js/translated/part.js:530
msgid "Salable part"
msgstr "Pièce vendable"
-#: templates/js/translated/part.js:644
+#: templates/js/translated/part.js:645
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1034
+#: templates/js/translated/part.js:1035
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1058
+#: templates/js/translated/part.js:1059
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1125 templates/js/translated/part.js:1385
+#: templates/js/translated/part.js:1126 templates/js/translated/part.js:1386
msgid "No parts found"
msgstr "Aucune pièce trouvée"
-#: templates/js/translated/part.js:1295
+#: templates/js/translated/part.js:1296
msgid "No category"
msgstr "Aucune catégorie"
-#: templates/js/translated/part.js:1318
+#: templates/js/translated/part.js:1319
#: templates/js/translated/table_filters.js:425
msgid "Low stock"
msgstr "Stock bas"
-#: templates/js/translated/part.js:1409 templates/js/translated/part.js:1581
-#: templates/js/translated/stock.js:2572
+#: templates/js/translated/part.js:1410 templates/js/translated/part.js:1582
+#: templates/js/translated/stock.js:2528
msgid "Display as list"
msgstr "Afficher sous forme de liste"
-#: templates/js/translated/part.js:1425
+#: templates/js/translated/part.js:1426
msgid "Display as grid"
msgstr "Afficher sous forme de grille"
-#: templates/js/translated/part.js:1600 templates/js/translated/stock.js:2591
+#: templates/js/translated/part.js:1601 templates/js/translated/stock.js:2547
msgid "Display as tree"
msgstr "Afficher sous forme d'arborescence"
-#: templates/js/translated/part.js:1664
+#: templates/js/translated/part.js:1665
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1678 templates/js/translated/stock.js:2635
+#: templates/js/translated/part.js:1679 templates/js/translated/stock.js:2591
msgid "Path"
msgstr "Chemin d'accès"
-#: templates/js/translated/part.js:1722
+#: templates/js/translated/part.js:1723
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1773 templates/js/translated/stock.js:1270
+#: templates/js/translated/part.js:1774 templates/js/translated/stock.js:1226
msgid "Edit test result"
msgstr "Modifier le résultat du test"
-#: templates/js/translated/part.js:1774 templates/js/translated/stock.js:1271
-#: templates/js/translated/stock.js:1517
+#: templates/js/translated/part.js:1775 templates/js/translated/stock.js:1227
+#: templates/js/translated/stock.js:1473
msgid "Delete test result"
msgstr "Supprimer le résultat du test"
-#: templates/js/translated/part.js:1780
+#: templates/js/translated/part.js:1781
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1802
+#: templates/js/translated/part.js:1803
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1816
+#: templates/js/translated/part.js:1817
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1841
+#: templates/js/translated/part.js:1842
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1896
+#: templates/js/translated/part.js:1897
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1897
+#: templates/js/translated/part.js:1898
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1998
+#: templates/js/translated/part.js:1999
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:2017
+#: templates/js/translated/part.js:2018
msgid "Single Price Difference"
msgstr ""
@@ -8861,368 +8932,356 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:102
+#: templates/js/translated/stock.js:101
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:111
+#: templates/js/translated/stock.js:110
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:154
+#: templates/js/translated/stock.js:153
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:194
+#: templates/js/translated/stock.js:193
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:233
+#: templates/js/translated/stock.js:232
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/stock.js:238
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr "Entrez les numéros de série pour le nouveau stock (ou laisser vide)"
-#: templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:381
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:395
+#: templates/js/translated/stock.js:394
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:420
+#: templates/js/translated/stock.js:419
msgid "Find Serial Number"
msgstr "Trouver un numéro de série"
-#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425
+#: templates/js/translated/stock.js:423 templates/js/translated/stock.js:424
msgid "Enter serial number"
msgstr "Entrer le numéro de série"
-#: templates/js/translated/stock.js:441
+#: templates/js/translated/stock.js:440
msgid "Enter a serial number"
msgstr "Entrer un numéro de série"
-#: templates/js/translated/stock.js:461
+#: templates/js/translated/stock.js:460
msgid "No matching serial number"
msgstr "Aucun numéro de série correspondant"
-#: templates/js/translated/stock.js:470
+#: templates/js/translated/stock.js:469
msgid "More than one matching result found"
msgstr "Plus d'un résultat correspondant trouvé"
-#: templates/js/translated/stock.js:515
-msgid "Export Stock"
-msgstr "Exporter le stock"
-
-#: templates/js/translated/stock.js:526
-msgid "Include Sublocations"
-msgstr "Inclure les sous-emplacements"
-
-#: templates/js/translated/stock.js:527
-msgid "Include stock items in sublocations"
-msgstr "Inclure les articles en stock dans les sous-emplacements"
-
-#: templates/js/translated/stock.js:636
+#: templates/js/translated/stock.js:592
msgid "Confirm stock assignment"
msgstr "Confirmer l'assignation de stock"
-#: templates/js/translated/stock.js:637
+#: templates/js/translated/stock.js:593
msgid "Assign Stock to Customer"
msgstr "Assigner le stock au client"
-#: templates/js/translated/stock.js:714
+#: templates/js/translated/stock.js:670
msgid "Warning: Merge operation cannot be reversed"
msgstr "Attention : l'opération de fusion est irréversible"
-#: templates/js/translated/stock.js:715
+#: templates/js/translated/stock.js:671
msgid "Some information will be lost when merging stock items"
msgstr "Certaines informations seront perdues lors de la fusion des articles en stock"
-#: templates/js/translated/stock.js:717
+#: templates/js/translated/stock.js:673
msgid "Stock transaction history will be deleted for merged items"
msgstr "L'historique des transactions de stock sera supprimé pour les éléments fusionnés"
-#: templates/js/translated/stock.js:718
+#: templates/js/translated/stock.js:674
msgid "Supplier part information will be deleted for merged items"
msgstr "Les informations sur la pièce du fournisseur seront supprimées pour les éléments fusionnés"
-#: templates/js/translated/stock.js:804
+#: templates/js/translated/stock.js:760
msgid "Confirm stock item merge"
msgstr "Confirmer la fusion de l'article en stock"
-#: templates/js/translated/stock.js:805
+#: templates/js/translated/stock.js:761
msgid "Merge Stock Items"
msgstr "Fusionner les articles en stock"
-#: templates/js/translated/stock.js:900
+#: templates/js/translated/stock.js:856
msgid "Transfer Stock"
msgstr "Transférer le stock"
-#: templates/js/translated/stock.js:901
+#: templates/js/translated/stock.js:857
msgid "Move"
msgstr "Transférer"
-#: templates/js/translated/stock.js:907
+#: templates/js/translated/stock.js:863
msgid "Count Stock"
msgstr "Compter le stock"
-#: templates/js/translated/stock.js:908
+#: templates/js/translated/stock.js:864
msgid "Count"
msgstr "Compter"
-#: templates/js/translated/stock.js:912
+#: templates/js/translated/stock.js:868
msgid "Remove Stock"
msgstr "Supprimer du stock"
-#: templates/js/translated/stock.js:913
+#: templates/js/translated/stock.js:869
msgid "Take"
msgstr "Supprimer"
-#: templates/js/translated/stock.js:917
+#: templates/js/translated/stock.js:873
msgid "Add Stock"
msgstr "Ajouter du stock"
-#: templates/js/translated/stock.js:918 users/models.py:213
+#: templates/js/translated/stock.js:874 users/models.py:213
msgid "Add"
msgstr "Ajouter"
-#: templates/js/translated/stock.js:922
+#: templates/js/translated/stock.js:878
msgid "Delete Stock"
msgstr "Supprimer le stock"
-#: templates/js/translated/stock.js:1011
+#: templates/js/translated/stock.js:967
msgid "Quantity cannot be adjusted for serialized stock"
msgstr "La quantité ne peut pas être ajustée pour un stock sérialisé"
-#: templates/js/translated/stock.js:1011
+#: templates/js/translated/stock.js:967
msgid "Specify stock quantity"
msgstr "Spécifiez la quantité du stock"
-#: templates/js/translated/stock.js:1051
+#: templates/js/translated/stock.js:1007
msgid "You must select at least one available stock item"
msgstr "Vous devez sélectionner au moins un article en stock disponible"
-#: templates/js/translated/stock.js:1209
+#: templates/js/translated/stock.js:1165
msgid "PASS"
msgstr "RÉUSSI"
-#: templates/js/translated/stock.js:1211
+#: templates/js/translated/stock.js:1167
msgid "FAIL"
msgstr "ÉCHEC"
-#: templates/js/translated/stock.js:1216
+#: templates/js/translated/stock.js:1172
msgid "NO RESULT"
msgstr "AUCUN RÉSULTAT"
-#: templates/js/translated/stock.js:1263
+#: templates/js/translated/stock.js:1219
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1266
+#: templates/js/translated/stock.js:1222
msgid "Add test result"
msgstr "Ajouter un résultat de test"
-#: templates/js/translated/stock.js:1292
+#: templates/js/translated/stock.js:1248
msgid "No test results found"
msgstr "Aucun résultat de test trouvé"
-#: templates/js/translated/stock.js:1348
+#: templates/js/translated/stock.js:1304
msgid "Test Date"
msgstr "Date du test"
-#: templates/js/translated/stock.js:1500
+#: templates/js/translated/stock.js:1456
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1522
+#: templates/js/translated/stock.js:1478
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1551
+#: templates/js/translated/stock.js:1507
msgid "In production"
msgstr "En production"
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1511
msgid "Installed in Stock Item"
msgstr "Article en stock installé dans un autre article en stock"
-#: templates/js/translated/stock.js:1563
+#: templates/js/translated/stock.js:1519
msgid "Assigned to Sales Order"
msgstr "Assigné à une commande de vente"
-#: templates/js/translated/stock.js:1569
+#: templates/js/translated/stock.js:1525
msgid "No stock location set"
msgstr "Aucun emplacement de stock défini"
-#: templates/js/translated/stock.js:1727
+#: templates/js/translated/stock.js:1683
msgid "Stock item is in production"
msgstr "L'article de stock est en production"
-#: templates/js/translated/stock.js:1732
+#: templates/js/translated/stock.js:1688
msgid "Stock item assigned to sales order"
msgstr "L'article en stock a été assigné à une commande de vente"
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1691
msgid "Stock item assigned to customer"
msgstr "L'article en stock a été assigné à un client"
-#: templates/js/translated/stock.js:1739
+#: templates/js/translated/stock.js:1695
msgid "Stock item has expired"
msgstr "L'article en stock a expiré"
-#: templates/js/translated/stock.js:1741
+#: templates/js/translated/stock.js:1697
msgid "Stock item will expire soon"
msgstr "L'article en stock va bientôt expirer"
-#: templates/js/translated/stock.js:1747
+#: templates/js/translated/stock.js:1703
msgid "Serialized stock item has been allocated"
msgstr "L'article de stock sérialisé a été alloué"
-#: templates/js/translated/stock.js:1749
+#: templates/js/translated/stock.js:1705
msgid "Stock item has been fully allocated"
msgstr "L'article de stock a été complètement alloué"
-#: templates/js/translated/stock.js:1751
+#: templates/js/translated/stock.js:1707
msgid "Stock item has been partially allocated"
msgstr "L'article de stock a été partiellement alloué"
-#: templates/js/translated/stock.js:1756
+#: templates/js/translated/stock.js:1712
msgid "Stock item has been installed in another item"
msgstr "L'article en stock a été installé dans un autre article"
-#: templates/js/translated/stock.js:1763
+#: templates/js/translated/stock.js:1719
msgid "Stock item has been rejected"
msgstr "L'article de stock a été rejeté"
-#: templates/js/translated/stock.js:1765
+#: templates/js/translated/stock.js:1721
msgid "Stock item is lost"
msgstr "L'article de stock est perdu"
-#: templates/js/translated/stock.js:1767
+#: templates/js/translated/stock.js:1723
msgid "Stock item is destroyed"
msgstr "L'article de stock est détruit"
-#: templates/js/translated/stock.js:1771
+#: templates/js/translated/stock.js:1727
#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr "Epuisé"
-#: templates/js/translated/stock.js:1821
+#: templates/js/translated/stock.js:1777
msgid "Stocktake"
msgstr "Prise d'inventaire"
-#: templates/js/translated/stock.js:1903
+#: templates/js/translated/stock.js:1859
msgid "Supplier part not specified"
msgstr "Pièce de fournisseur non précisée"
-#: templates/js/translated/stock.js:1941
+#: templates/js/translated/stock.js:1897
msgid "No stock items matching query"
msgstr "Aucun article de stock ne correspond à la requête"
-#: templates/js/translated/stock.js:1962 templates/js/translated/stock.js:2010
+#: templates/js/translated/stock.js:1918 templates/js/translated/stock.js:1966
msgid "items"
msgstr "articles"
-#: templates/js/translated/stock.js:2050
+#: templates/js/translated/stock.js:2006
msgid "batches"
msgstr "lots"
-#: templates/js/translated/stock.js:2077
+#: templates/js/translated/stock.js:2033
msgid "locations"
msgstr "emplacements"
-#: templates/js/translated/stock.js:2079
+#: templates/js/translated/stock.js:2035
msgid "Undefined location"
msgstr "Emplacement indéfini"
-#: templates/js/translated/stock.js:2278
+#: templates/js/translated/stock.js:2234
msgid "Set Stock Status"
msgstr "Définir l'état du stock"
-#: templates/js/translated/stock.js:2292
+#: templates/js/translated/stock.js:2248
msgid "Select Status Code"
msgstr "Sélectionner le code de statut"
-#: templates/js/translated/stock.js:2293
+#: templates/js/translated/stock.js:2249
msgid "Status code must be selected"
msgstr "Le code de statut doit être sélectionné"
-#: templates/js/translated/stock.js:2472
+#: templates/js/translated/stock.js:2428
msgid "Allocated Quantity"
msgstr "Quantité Allouée"
-#: templates/js/translated/stock.js:2682
+#: templates/js/translated/stock.js:2638
msgid "Details"
msgstr "Détails"
-#: templates/js/translated/stock.js:2707
+#: templates/js/translated/stock.js:2663
msgid "Location no longer exists"
msgstr "L'emplacement n'existe plus"
-#: templates/js/translated/stock.js:2726
+#: templates/js/translated/stock.js:2682
msgid "Purchase order no longer exists"
msgstr "La commande d'achat n'existe plus"
-#: templates/js/translated/stock.js:2745
+#: templates/js/translated/stock.js:2701
msgid "Customer no longer exists"
msgstr "Le client n'existe plus"
-#: templates/js/translated/stock.js:2763
+#: templates/js/translated/stock.js:2719
msgid "Stock item no longer exists"
msgstr "L'article de stock n'existe plus"
-#: templates/js/translated/stock.js:2786
+#: templates/js/translated/stock.js:2742
msgid "Added"
msgstr "Ajouté"
-#: templates/js/translated/stock.js:2794
+#: templates/js/translated/stock.js:2750
msgid "Removed"
msgstr "Supprimé"
-#: templates/js/translated/stock.js:2835
+#: templates/js/translated/stock.js:2791
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2836
+#: templates/js/translated/stock.js:2792
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2887
+#: templates/js/translated/stock.js:2843
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2938
+#: templates/js/translated/stock.js:2894
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2974
+#: templates/js/translated/stock.js:2930
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2975
+#: templates/js/translated/stock.js:2931
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2977
+#: templates/js/translated/stock.js:2933
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2978
+#: templates/js/translated/stock.js:2934
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2979
+#: templates/js/translated/stock.js:2935
msgid "The Stock Item is serialized and does not belong to another item"
msgstr ""
-#: templates/js/translated/stock.js:2992
+#: templates/js/translated/stock.js:2948
msgid "Select part to install"
msgstr ""
@@ -9429,60 +9488,68 @@ msgstr "Stock disponible"
msgid "Purchasable"
msgstr "Achetable"
-#: templates/js/translated/tables.js:368
+#: templates/js/translated/tables.js:50
+msgid "Export Table Data"
+msgstr ""
+
+#: templates/js/translated/tables.js:54
+msgid "Select File Format"
+msgstr ""
+
+#: templates/js/translated/tables.js:433
msgid "Loading data"
msgstr "Chargement des données"
-#: templates/js/translated/tables.js:371
+#: templates/js/translated/tables.js:436
msgid "rows per page"
msgstr "résultats par page"
-#: templates/js/translated/tables.js:376
+#: templates/js/translated/tables.js:441
msgid "Showing all rows"
msgstr "Afficher toutes les lignes"
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "Showing"
msgstr "Afficher"
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "to"
msgstr "à"
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "of"
msgstr "de"
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "rows"
msgstr "lignes"
-#: templates/js/translated/tables.js:382 templates/search_form.html:6
+#: templates/js/translated/tables.js:447 templates/search_form.html:6
#: templates/search_form.html:7
msgid "Search"
msgstr "Rechercher"
-#: templates/js/translated/tables.js:385
+#: templates/js/translated/tables.js:450
msgid "No matching results"
msgstr "Aucun résultat correspondant n'a été trouvé"
-#: templates/js/translated/tables.js:388
+#: templates/js/translated/tables.js:453
msgid "Hide/Show pagination"
msgstr "Masquer/Afficher la pagination"
-#: templates/js/translated/tables.js:391
+#: templates/js/translated/tables.js:456
msgid "Refresh"
msgstr "Actualiser"
-#: templates/js/translated/tables.js:394
+#: templates/js/translated/tables.js:459
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:397
+#: templates/js/translated/tables.js:462
msgid "Columns"
msgstr "Colonnes"
-#: templates/js/translated/tables.js:400
+#: templates/js/translated/tables.js:465
msgid "All"
msgstr "Tout"
@@ -9586,63 +9653,59 @@ msgstr ""
msgid "Email settings not configured"
msgstr ""
-#: templates/stock_table.html:14
-msgid "Export Stock Information"
-msgstr ""
-
-#: templates/stock_table.html:20
+#: templates/stock_table.html:17
msgid "Barcode Actions"
msgstr ""
-#: templates/stock_table.html:36
+#: templates/stock_table.html:33
msgid "Print test reports"
msgstr ""
-#: templates/stock_table.html:43
+#: templates/stock_table.html:40
msgid "Stock Options"
msgstr ""
-#: templates/stock_table.html:48
+#: templates/stock_table.html:45
msgid "Add to selected stock items"
msgstr ""
-#: templates/stock_table.html:49
+#: templates/stock_table.html:46
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:50
+#: templates/stock_table.html:47
msgid "Stocktake selected stock items"
msgstr ""
-#: templates/stock_table.html:51
+#: templates/stock_table.html:48
msgid "Move selected stock items"
msgstr ""
-#: templates/stock_table.html:52
+#: templates/stock_table.html:49
msgid "Merge selected stock items"
msgstr "Fusionner les éléments de stock sélectionnés"
-#: templates/stock_table.html:52
+#: templates/stock_table.html:49
msgid "Merge stock"
msgstr "Fusionner le stock"
-#: templates/stock_table.html:53
+#: templates/stock_table.html:50
msgid "Order selected items"
msgstr "Commander les éléments sélectionnés"
-#: templates/stock_table.html:55
+#: templates/stock_table.html:52
msgid "Change status"
msgstr "Changer l'état du stock"
-#: templates/stock_table.html:55
+#: templates/stock_table.html:52
msgid "Change stock status"
msgstr "Changer l'état du stock"
-#: templates/stock_table.html:58
+#: templates/stock_table.html:55
msgid "Delete selected items"
msgstr "Supprimer les éléments sélectionnés"
-#: templates/stock_table.html:58
+#: templates/stock_table.html:55
msgid "Delete stock"
msgstr ""
diff --git a/InvenTree/locale/he/LC_MESSAGES/django.po b/InvenTree/locale/he/LC_MESSAGES/django.po
index ccd613c1a3..5bdc83d009 100644
--- a/InvenTree/locale/he/LC_MESSAGES/django.po
+++ b/InvenTree/locale/he/LC_MESSAGES/django.po
@@ -1,10 +1,10 @@
-#: templates/js/translated/order.js:2090
+#: templates/js/translated/order.js:2178
msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-03-01 13:34+0000\n"
-"PO-Revision-Date: 2022-03-01 14:09\n"
+"POT-Creation-Date: 2022-03-07 04:31+0000\n"
+"PO-Revision-Date: 2022-03-07 04:47\n"
"Last-Translator: \n"
"Language-Team: Hebrew\n"
"Language: he_IL\n"
@@ -86,7 +86,7 @@ msgid "Duplicate serial: {sn}"
msgstr ""
#: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435
-#: stock/views.py:1101
+#: stock/views.py:983
msgid "Invalid quantity provided"
msgstr ""
@@ -114,100 +114,100 @@ msgstr "מספרים סידוריים לא נמצאו"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "כמות המספרים הסידוריים ({s}) מוכרים להיות תואמים לכמות ({q})"
-#: InvenTree/models.py:176
+#: InvenTree/models.py:185
msgid "Missing file"
msgstr "קובץ חסר"
-#: InvenTree/models.py:177
+#: InvenTree/models.py:186
msgid "Missing external link"
msgstr "חסר קישור חיצוני"
-#: InvenTree/models.py:188 stock/models.py:2071
+#: InvenTree/models.py:197 stock/models.py:2123
#: templates/js/translated/attachment.js:119
msgid "Attachment"
msgstr "קובץ מצורף"
-#: InvenTree/models.py:189
+#: InvenTree/models.py:198
msgid "Select file to attach"
msgstr "בחר קובץ לצירוף"
-#: InvenTree/models.py:195 company/models.py:131 company/models.py:348
+#: InvenTree/models.py:204 company/models.py:131 company/models.py:348
#: company/models.py:564 order/models.py:127 part/models.py:860
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1346
+#: templates/js/translated/company.js:829 templates/js/translated/part.js:1347
msgid "Link"
msgstr "קישור"
-#: InvenTree/models.py:196 build/models.py:330 part/models.py:861
-#: stock/models.py:566
+#: InvenTree/models.py:205 build/models.py:332 part/models.py:861
+#: stock/models.py:618
msgid "Link to external URL"
msgstr "קישור חיצוני"
-#: InvenTree/models.py:199 templates/js/translated/attachment.js:163
+#: InvenTree/models.py:208 templates/js/translated/attachment.js:163
msgid "Comment"
msgstr "הערה"
-#: InvenTree/models.py:199
+#: InvenTree/models.py:208
msgid "File comment"
msgstr "הערת קובץ"
-#: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1277
+#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1277
#: common/models.py:1278 common/models.py:1506 common/models.py:1507
-#: part/models.py:2303 part/models.py:2323
+#: part/models.py:2317 part/models.py:2337
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2817
+#: templates/js/translated/stock.js:2773
msgid "User"
msgstr "משתמש"
-#: InvenTree/models.py:209
+#: InvenTree/models.py:218
msgid "upload date"
msgstr "תאריך העלאה"
-#: InvenTree/models.py:232
+#: InvenTree/models.py:241
msgid "Filename must not be empty"
msgstr "חובה למלא שם קובץ"
-#: InvenTree/models.py:255
+#: InvenTree/models.py:264
msgid "Invalid attachment directory"
msgstr "תיקיית קובץ שגויה"
-#: InvenTree/models.py:265
+#: InvenTree/models.py:274
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "שם הקובץ מכיל תו '{c}' שאינו חוקי"
-#: InvenTree/models.py:268
+#: InvenTree/models.py:277
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:275
+#: InvenTree/models.py:284
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:282
+#: InvenTree/models.py:291
msgid "Error renaming file"
msgstr "שגיאה בשינוי שם פריט"
-#: InvenTree/models.py:317
+#: InvenTree/models.py:326
msgid "Invalid choice"
msgstr "בחירה שגויה"
-#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1492
+#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1492
#: company/models.py:415 label/models.py:112 part/models.py:804
-#: part/models.py:2487 plugin/models.py:40 report/models.py:181
+#: part/models.py:2501 plugin/models.py:40 report/models.py:181
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:48
#: templates/InvenTree/settings/plugin.html:125
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:319
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:567
-#: templates/js/translated/part.js:706 templates/js/translated/part.js:1653
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/company.js:641 templates/js/translated/part.js:568
+#: templates/js/translated/part.js:707 templates/js/translated/part.js:1654
+#: templates/js/translated/stock.js:2573
msgid "Name"
msgstr "שם"
-#: InvenTree/models.py:340 build/models.py:207
+#: InvenTree/models.py:349 build/models.py:209
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
@@ -219,28 +219,28 @@ msgstr "שם"
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:92
#: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:765
-#: templates/js/translated/build.js:1920 templates/js/translated/company.js:345
+#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763
+#: templates/js/translated/build.js:1973 templates/js/translated/company.js:345
#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:911
-#: templates/js/translated/order.js:1105 templates/js/translated/order.js:1366
-#: templates/js/translated/part.js:626 templates/js/translated/part.js:1021
-#: templates/js/translated/part.js:1106 templates/js/translated/part.js:1276
-#: templates/js/translated/part.js:1672 templates/js/translated/part.js:1741
-#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2446
-#: templates/js/translated/stock.js:2629 templates/js/translated/stock.js:2667
+#: templates/js/translated/company.js:840 templates/js/translated/order.js:971
+#: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454
+#: templates/js/translated/part.js:627 templates/js/translated/part.js:1022
+#: templates/js/translated/part.js:1107 templates/js/translated/part.js:1277
+#: templates/js/translated/part.js:1673 templates/js/translated/part.js:1742
+#: templates/js/translated/stock.js:1656 templates/js/translated/stock.js:2402
+#: templates/js/translated/stock.js:2585 templates/js/translated/stock.js:2623
msgid "Description"
msgstr "תיאור"
-#: InvenTree/models.py:341
+#: InvenTree/models.py:350
msgid "Description (optional)"
msgstr "תיאור (לא חובה)"
-#: InvenTree/models.py:349
+#: InvenTree/models.py:358
msgid "parent"
msgstr "מקור"
-#: InvenTree/serializers.py:65 part/models.py:2805
+#: InvenTree/serializers.py:65 part/models.py:2820
msgid "Must be a valid number"
msgstr "המספר חייב להיות תקין"
@@ -294,87 +294,87 @@ msgstr ""
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:665
msgid "German"
msgstr "גרמנית"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:666
msgid "Greek"
msgstr "יוונית"
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:667
msgid "English"
msgstr "אנגלית"
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:668
msgid "Spanish"
msgstr "ספרדית"
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:669
msgid "Spanish (Mexican)"
msgstr "ספרדית (מקסיקנית)"
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:670
msgid "French"
msgstr "צרפתית"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:671
msgid "Hebrew"
msgstr "עברית"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:672
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:673
msgid "Italian"
msgstr "איטלקית"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:674
msgid "Japanese"
msgstr "יפנית"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:675
msgid "Korean"
msgstr "קוריאנית"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:676
msgid "Dutch"
msgstr "הולנדית"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:677
msgid "Norwegian"
msgstr "נורווגית"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:678
msgid "Polish"
msgstr "פולנית"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:679
msgid "Portugese"
msgstr "פורטוגזית"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:680
msgid "Russian"
msgstr "רוסית"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:681
msgid "Swedish"
msgstr "שוודית"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:682
msgid "Thai"
msgstr "תאילנדית"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:683
msgid "Turkish"
msgstr "טורקית"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:684
msgid "Vietnamese"
msgstr "ווייטנאמית"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:685
msgid "Chinese"
msgstr "סינית"
@@ -421,7 +421,7 @@ msgid "Returned"
msgstr "הוחזר"
#: InvenTree/status_codes.py:143 order/models.py:997
-#: templates/js/translated/order.js:2097 templates/js/translated/order.js:2394
+#: templates/js/translated/order.js:2185 templates/js/translated/order.js:2482
msgid "Shipped"
msgstr "נשלח"
@@ -501,7 +501,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2204
+#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2160
msgid "Merged stock items"
msgstr ""
@@ -593,43 +593,43 @@ msgstr "הסיסמאות מוכרחות להיות תואמות"
msgid "System Information"
msgstr "מידע אודות המערכת"
-#: barcodes/api.py:54 barcodes/api.py:152
+#: barcodes/api.py:55 barcodes/api.py:156
msgid "Must provide barcode_data parameter"
msgstr "הפרמטר barcode_data מוכרח להיות תקין"
-#: barcodes/api.py:128
+#: barcodes/api.py:132
msgid "No match found for barcode data"
msgstr ""
-#: barcodes/api.py:130
+#: barcodes/api.py:134
msgid "Match found for barcode data"
msgstr ""
-#: barcodes/api.py:155
+#: barcodes/api.py:159
msgid "Must provide stockitem parameter"
msgstr ""
-#: barcodes/api.py:162
+#: barcodes/api.py:166
msgid "No matching stock item found"
msgstr ""
-#: barcodes/api.py:193
+#: barcodes/api.py:197
msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:197
+#: barcodes/api.py:201
msgid "Barcode already matches Stock Location"
msgstr ""
-#: barcodes/api.py:201
+#: barcodes/api.py:205
msgid "Barcode already matches Part"
msgstr ""
-#: barcodes/api.py:207 barcodes/api.py:219
+#: barcodes/api.py:211 barcodes/api.py:223
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: barcodes/api.py:225
+#: barcodes/api.py:229
msgid "Barcode associated with Stock Item"
msgstr ""
@@ -641,18 +641,18 @@ msgstr ""
msgid "Confirm build cancellation"
msgstr ""
-#: build/models.py:133
+#: build/models.py:135
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:139 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:676 templates/js/translated/stock.js:2422
+#: templates/js/translated/build.js:677 templates/js/translated/stock.js:2378
msgid "Build Order"
msgstr ""
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:140 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:92
#: order/templates/order/so_sidebar.html:13
@@ -662,41 +662,41 @@ msgstr ""
msgid "Build Orders"
msgstr ""
-#: build/models.py:198
+#: build/models.py:200
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:213 order/models.py:563
-#: order/models.py:843 part/models.py:2716
+#: build/models.py:201 order/models.py:213 order/models.py:563
+#: order/models.py:843 part/models.py:2731
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:772 templates/js/translated/build.js:1401
-#: templates/js/translated/order.js:1136 templates/js/translated/order.js:2261
+#: templates/js/translated/bom.js:770 templates/js/translated/build.js:1402
+#: templates/js/translated/order.js:1223 templates/js/translated/order.js:2349
msgid "Reference"
msgstr "מקט"
-#: build/models.py:210
+#: build/models.py:212
msgid "Brief description of the build"
msgstr "תיאור קצר אודות הבנייה"
-#: build/models.py:219 build/templates/build/build_base.html:169
+#: build/models.py:221 build/templates/build/build_base.html:169
#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr "מקור הבנייה"
-#: build/models.py:220
+#: build/models.py:222
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:225 build/templates/build/build_base.html:77
+#: build/models.py:227 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
#: order/models.py:912 order/models.py:986
#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359
-#: part/models.py:2249 part/models.py:2265 part/models.py:2284
-#: part/models.py:2301 part/models.py:2403 part/models.py:2525
-#: part/models.py:2615 part/models.py:2691 part/models.py:2998
-#: part/serializers.py:666 part/templates/part/part_app_base.html:8
+#: part/models.py:2263 part/models.py:2279 part/models.py:2298
+#: part/models.py:2315 part/models.py:2417 part/models.py:2539
+#: part/models.py:2629 part/models.py:2706 part/models.py:3013
+#: part/serializers.py:669 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: part/templates/part/upload_bom.html:52
@@ -707,231 +707,231 @@ msgstr ""
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551
-#: templates/js/translated/bom.js:730 templates/js/translated/build.js:902
-#: templates/js/translated/build.js:1270 templates/js/translated/build.js:1655
-#: templates/js/translated/build.js:1925 templates/js/translated/company.js:492
+#: templates/js/translated/bom.js:728 templates/js/translated/build.js:903
+#: templates/js/translated/build.js:1271 templates/js/translated/build.js:1666
+#: templates/js/translated/build.js:1978 templates/js/translated/company.js:492
#: templates/js/translated/company.js:749 templates/js/translated/order.js:84
-#: templates/js/translated/order.js:651 templates/js/translated/order.js:1090
-#: templates/js/translated/order.js:1693 templates/js/translated/order.js:2050
-#: templates/js/translated/order.js:2245 templates/js/translated/part.js:1006
-#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1254
-#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1657
-#: templates/js/translated/stock.js:2892 templates/js/translated/stock.js:2991
+#: templates/js/translated/order.js:711 templates/js/translated/order.js:1177
+#: templates/js/translated/order.js:1781 templates/js/translated/order.js:2138
+#: templates/js/translated/order.js:2333 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1088 templates/js/translated/part.js:1255
+#: templates/js/translated/stock.js:518 templates/js/translated/stock.js:683
+#: templates/js/translated/stock.js:890 templates/js/translated/stock.js:1613
+#: templates/js/translated/stock.js:2848 templates/js/translated/stock.js:2947
msgid "Part"
msgstr "רכיב"
-#: build/models.py:233
+#: build/models.py:235
msgid "Select part to build"
msgstr "בחר רכיב לבנייה"
-#: build/models.py:238
+#: build/models.py:240
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:242
+#: build/models.py:244
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 templates/js/translated/build.js:1643
-#: templates/js/translated/order.js:1681
+#: build/models.py:249 build/serializers.py:729
+#: templates/js/translated/build.js:1654 templates/js/translated/order.js:1769
msgid "Source Location"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:256
+#: build/models.py:258
msgid "Destination Location"
msgstr ""
-#: build/models.py:260
+#: build/models.py:262
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:264
+#: build/models.py:266
msgid "Build Quantity"
msgstr "כמות בניה"
-#: build/models.py:267
+#: build/models.py:269
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:271
+#: build/models.py:273
msgid "Completed items"
msgstr ""
-#: build/models.py:273
+#: build/models.py:275
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:277 part/templates/part/part_base.html:234
+#: build/models.py:279 part/templates/part/part_base.html:234
msgid "Build Status"
msgstr ""
-#: build/models.py:281
+#: build/models.py:283
msgid "Build status code"
msgstr ""
-#: build/models.py:285 build/serializers.py:218 order/serializers.py:272
-#: stock/models.py:570 templates/js/translated/order.js:513
+#: build/models.py:287 build/serializers.py:218 order/serializers.py:272
+#: stock/models.py:622 templates/js/translated/order.js:573
msgid "Batch Code"
msgstr ""
-#: build/models.py:289 build/serializers.py:219
+#: build/models.py:291 build/serializers.py:219
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:129 part/models.py:999
-#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1379
+#: build/models.py:294 order/models.py:129 part/models.py:999
+#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1467
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:585
+#: build/models.py:298 order/models.py:585
msgid "Target completion date"
msgstr ""
-#: build/models.py:297
+#: build/models.py:299
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:255
-#: templates/js/translated/build.js:2002
+#: build/models.py:302 order/models.py:255
+#: templates/js/translated/build.js:2055
msgid "Completion Date"
msgstr ""
-#: build/models.py:306
+#: build/models.py:308
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:1970
+#: build/models.py:316 templates/js/translated/build.js:2023
msgid "Issued by"
msgstr ""
-#: build/models.py:315
+#: build/models.py:317
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:323 build/templates/build/build_base.html:190
+#: build/models.py:325 build/templates/build/build_base.html:190
#: build/templates/build/detail.html:116 order/models.py:143
#: order/templates/order/order_base.html:170
#: order/templates/order/sales_order_base.html:182 part/models.py:1003
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1982 templates/js/translated/order.js:945
+#: templates/js/translated/build.js:2035 templates/js/translated/order.js:1005
msgid "Responsible"
msgstr ""
-#: build/models.py:324
+#: build/models.py:326
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:329 build/templates/build/detail.html:102
+#: build/models.py:331 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:564
+#: part/templates/part/part_base.html:354 stock/models.py:616
#: stock/templates/stock/item_base.html:352
msgid "External Link"
msgstr ""
-#: build/models.py:334 build/serializers.py:381
+#: build/models.py:336 build/serializers.py:381
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
#: order/models.py:147 order/models.py:845 order/models.py:1107
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/models.py:988
-#: part/templates/part/detail.html:146 part/templates/part/part_sidebar.html:57
+#: part/templates/part/detail.html:141 part/templates/part/part_sidebar.html:57
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:137 stock/forms.py:171 stock/models.py:636
-#: stock/models.py:1971 stock/models.py:2077 stock/serializers.py:332
+#: stock/forms.py:137 stock/forms.py:171 stock/models.py:688
+#: stock/models.py:2023 stock/models.py:2129 stock/serializers.py:332
#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:936
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1257
-#: templates/js/translated/order.js:1562 templates/js/translated/order.js:2419
-#: templates/js/translated/stock.js:1344 templates/js/translated/stock.js:1935
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934
+#: templates/js/translated/company.js:845 templates/js/translated/order.js:1344
+#: templates/js/translated/order.js:1650 templates/js/translated/order.js:2507
+#: templates/js/translated/stock.js:1300 templates/js/translated/stock.js:1891
msgid "Notes"
msgstr ""
-#: build/models.py:335
+#: build/models.py:337
msgid "Extra build notes"
msgstr ""
-#: build/models.py:748
+#: build/models.py:750
msgid "No build output specified"
msgstr ""
-#: build/models.py:751
+#: build/models.py:753
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:754
+#: build/models.py:756
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1060
+#: build/models.py:1162
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1069
+#: build/models.py:1171
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1079
+#: build/models.py:1181
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1085 order/models.py:1225
+#: build/models.py:1187 order/models.py:1225
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1091
+#: build/models.py:1193
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1148
+#: build/models.py:1250
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1217 stock/templates/stock/item_base.html:324
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898
+#: build/models.py:1319 stock/templates/stock/item_base.html:324
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1951
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1218
+#: build/models.py:1320
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1234 build/serializers.py:576 order/serializers.py:783
+#: build/models.py:1336 build/serializers.py:576 order/serializers.py:783
#: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635
#: stock/serializers.py:753 stock/templates/stock/item_base.html:9
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:346
-#: templates/js/translated/build.js:687 templates/js/translated/build.js:692
-#: templates/js/translated/build.js:1657 templates/js/translated/build.js:2050
-#: templates/js/translated/order.js:85 templates/js/translated/order.js:1694
-#: templates/js/translated/order.js:1949 templates/js/translated/order.js:1954
-#: templates/js/translated/order.js:2057 templates/js/translated/order.js:2147
-#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728
-#: templates/js/translated/stock.js:2753
+#: templates/js/translated/build.js:688 templates/js/translated/build.js:693
+#: templates/js/translated/build.js:1668 templates/js/translated/build.js:2103
+#: templates/js/translated/order.js:85 templates/js/translated/order.js:1782
+#: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:2235
+#: templates/js/translated/stock.js:519 templates/js/translated/stock.js:684
+#: templates/js/translated/stock.js:2709
msgid "Stock Item"
msgstr ""
-#: build/models.py:1235
+#: build/models.py:1337
msgid "Source stock item"
msgstr ""
-#: build/models.py:1247 build/serializers.py:188
+#: build/models.py:1349 build/serializers.py:188
#: build/templates/build/build_base.html:82
#: build/templates/build/detail.html:35 common/models.py:1317
#: company/forms.py:42 company/templates/company/supplier_part.html:251
#: order/models.py:836 order/models.py:1265 order/serializers.py:903
#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144
-#: part/forms.py:160 part/forms.py:176 part/models.py:2707
-#: part/templates/part/detail.html:1008 part/templates/part/detail.html:1094
+#: part/forms.py:160 part/forms.py:176 part/models.py:2722
+#: part/templates/part/detail.html:994 part/templates/part/detail.html:1080
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_build_order_base.html:114
@@ -943,32 +943,32 @@ msgstr ""
#: stock/templates/stock/item_base.html:176
#: stock/templates/stock/item_base.html:241
#: stock/templates/stock/item_base.html:249
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:780
-#: templates/js/translated/build.js:375 templates/js/translated/build.js:523
-#: templates/js/translated/build.js:714 templates/js/translated/build.js:911
-#: templates/js/translated/build.js:921 templates/js/translated/build.js:1297
-#: templates/js/translated/build.js:1658
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778
+#: templates/js/translated/build.js:376 templates/js/translated/build.js:524
+#: templates/js/translated/build.js:715 templates/js/translated/build.js:912
+#: templates/js/translated/build.js:922 templates/js/translated/build.js:1298
+#: templates/js/translated/build.js:1669
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:101 templates/js/translated/order.js:1142
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:1976
-#: templates/js/translated/order.js:2064 templates/js/translated/order.js:2153
-#: templates/js/translated/order.js:2267 templates/js/translated/part.js:906
-#: templates/js/translated/part.js:1884 templates/js/translated/part.js:2007
-#: templates/js/translated/part.js:2085 templates/js/translated/stock.js:391
-#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758
-#: templates/js/translated/stock.js:2802 templates/js/translated/stock.js:2904
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:1229
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:2064
+#: templates/js/translated/order.js:2152 templates/js/translated/order.js:2241
+#: templates/js/translated/order.js:2355 templates/js/translated/part.js:907
+#: templates/js/translated/part.js:1885 templates/js/translated/part.js:2008
+#: templates/js/translated/part.js:2086 templates/js/translated/stock.js:390
+#: templates/js/translated/stock.js:544 templates/js/translated/stock.js:714
+#: templates/js/translated/stock.js:2758 templates/js/translated/stock.js:2860
msgid "Quantity"
msgstr "כמות"
-#: build/models.py:1248
+#: build/models.py:1350
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1256
+#: build/models.py:1358
msgid "Install into"
msgstr ""
-#: build/models.py:1257
+#: build/models.py:1359
msgid "Destination stock item"
msgstr ""
@@ -997,8 +997,8 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:201 build/serializers.py:596 order/models.py:280
-#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:826
-#: stock/models.py:404 stock/models.py:1180 stock/serializers.py:305
+#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:836
+#: stock/models.py:456 stock/models.py:1232 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1012,8 +1012,8 @@ msgstr ""
#: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907
#: stock/forms.py:78 stock/serializers.py:314
-#: templates/js/translated/order.js:524 templates/js/translated/stock.js:238
-#: templates/js/translated/stock.js:392
+#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237
+#: templates/js/translated/stock.js:391
msgid "Serial Numbers"
msgstr "מספרים סידוריים"
@@ -1029,7 +1029,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:275 stock/api.py:549
+#: build/serializers.py:275 stock/api.py:551
msgid "The following serial numbers already exist"
msgstr ""
@@ -1041,13 +1041,13 @@ msgstr ""
#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788
#: stock/serializers.py:1029 stock/templates/stock/item_base.html:292
#: templates/js/translated/barcode.js:384
-#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:699
-#: templates/js/translated/build.js:1309 templates/js/translated/order.js:551
-#: templates/js/translated/order.js:1961 templates/js/translated/order.js:2072
-#: templates/js/translated/order.js:2080 templates/js/translated/order.js:2161
-#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564
-#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936
-#: templates/js/translated/stock.js:1807 templates/js/translated/stock.js:2694
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700
+#: templates/js/translated/build.js:1310 templates/js/translated/order.js:611
+#: templates/js/translated/order.js:2049 templates/js/translated/order.js:2160
+#: templates/js/translated/order.js:2168 templates/js/translated/order.js:2249
+#: templates/js/translated/part.js:179 templates/js/translated/stock.js:520
+#: templates/js/translated/stock.js:685 templates/js/translated/stock.js:892
+#: templates/js/translated/stock.js:1763 templates/js/translated/stock.js:2650
msgid "Location"
msgstr ""
@@ -1058,10 +1058,10 @@ msgstr ""
#: build/serializers.py:377 build/templates/build/build_base.html:142
#: build/templates/build/detail.html:63 order/models.py:579
#: order/serializers.py:290 stock/templates/stock/item_base.html:182
-#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1954
-#: templates/js/translated/order.js:656 templates/js/translated/order.js:915
-#: templates/js/translated/order.js:1371 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2771 templates/js/translated/stock.js:2920
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2007
+#: templates/js/translated/order.js:716 templates/js/translated/order.js:975
+#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2727 templates/js/translated/stock.js:2876
msgid "Status"
msgstr ""
@@ -1073,7 +1073,7 @@ msgstr ""
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:445 templates/js/translated/build.js:150
+#: build/serializers.py:445 templates/js/translated/build.js:151
msgid "Required stock has not been fully allocated"
msgstr ""
@@ -1085,7 +1085,7 @@ msgstr ""
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:461 templates/js/translated/build.js:154
+#: build/serializers.py:461 templates/js/translated/build.js:155
msgid "Required build quantity has not been completed"
msgstr ""
@@ -1097,8 +1097,8 @@ msgstr ""
msgid "No build outputs have been created for this build order"
msgstr ""
-#: build/serializers.py:501 build/serializers.py:550 part/models.py:2831
-#: part/models.py:2990
+#: build/serializers.py:501 build/serializers.py:550 part/models.py:2846
+#: part/models.py:3005
msgid "BOM Item"
msgstr ""
@@ -1135,6 +1135,26 @@ msgstr ""
msgid "Allocation items must be provided"
msgstr ""
+#: build/serializers.py:730
+msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
+msgstr ""
+
+#: build/serializers.py:735
+msgid "Interchangeable Stock"
+msgstr ""
+
+#: build/serializers.py:736
+msgid "Stock items in multiple locations can be used interchangeably"
+msgstr ""
+
+#: build/serializers.py:741
+msgid "Substitute Stock"
+msgstr ""
+
+#: build/serializers.py:742
+msgid "Allow allocation of substitute parts"
+msgstr ""
+
#: build/tasks.py:98
msgid "Stock required for build order"
msgstr ""
@@ -1206,9 +1226,9 @@ msgstr ""
#: order/templates/order/order_base.html:156
#: order/templates/order/sales_order_base.html:163
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1994 templates/js/translated/order.js:932
-#: templates/js/translated/order.js:1204 templates/js/translated/order.js:1387
-#: templates/js/translated/order.js:2330 templates/js/translated/part.js:910
+#: templates/js/translated/build.js:2047 templates/js/translated/order.js:992
+#: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475
+#: templates/js/translated/order.js:2418 templates/js/translated/part.js:911
msgid "Target Date"
msgstr ""
@@ -1230,7 +1250,7 @@ msgstr ""
#: build/templates/build/build_base.html:163
#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
#: order/templates/order/sales_order_base.html:170
-#: templates/js/translated/build.js:1940
+#: templates/js/translated/build.js:1993
#: templates/js/translated/table_filters.js:365
msgid "Completed"
msgstr ""
@@ -1242,7 +1262,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:286
-#: templates/js/translated/order.js:1326 templates/js/translated/stock.js:2436
+#: templates/js/translated/order.js:1414 templates/js/translated/stock.js:2392
msgid "Sales Order"
msgstr ""
@@ -1277,7 +1297,7 @@ msgid "Stock can be taken from any available location."
msgstr ""
#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133
-#: templates/js/translated/order.js:657 templates/js/translated/order.js:1246
+#: templates/js/translated/order.js:717 templates/js/translated/order.js:1333
msgid "Destination"
msgstr ""
@@ -1285,13 +1305,13 @@ msgstr ""
msgid "Destination location not specified"
msgstr ""
-#: build/templates/build/detail.html:74 templates/js/translated/build.js:929
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:930
msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:310
-#: templates/js/translated/stock.js:1796 templates/js/translated/stock.js:2927
+#: templates/js/translated/stock.js:1752 templates/js/translated/stock.js:2883
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:238
msgid "Batch"
@@ -1300,7 +1320,7 @@ msgstr ""
#: build/templates/build/detail.html:127
#: order/templates/order/order_base.html:143
#: order/templates/order/sales_order_base.html:157
-#: templates/js/translated/build.js:1962
+#: templates/js/translated/build.js:2015
msgid "Created"
msgstr ""
@@ -1320,7 +1340,7 @@ msgstr ""
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:177 templates/js/translated/build.js:1484
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1485
msgid "Unallocate stock"
msgstr ""
@@ -1329,111 +1349,119 @@ msgid "Unallocate Stock"
msgstr ""
#: build/templates/build/detail.html:180
-msgid "Allocate stock to build"
+msgid "Automatically allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
+#: build/templates/build/detail.html:181
+msgid "Auto Allocate"
+msgstr ""
+
+#: build/templates/build/detail.html:183
+msgid "Manually allocate stock to build"
+msgstr ""
+
+#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8
msgid "Allocate Stock"
msgstr ""
-#: build/templates/build/detail.html:184
+#: build/templates/build/detail.html:187
msgid "Order required parts"
msgstr ""
-#: build/templates/build/detail.html:185
+#: build/templates/build/detail.html:188
#: company/templates/company/detail.html:38
#: company/templates/company/detail.html:85 order/views.py:463
-#: part/templates/part/category.html:177
+#: part/templates/part/category.html:174
msgid "Order Parts"
msgstr ""
-#: build/templates/build/detail.html:197
+#: build/templates/build/detail.html:200
msgid "Untracked stock has been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:201
+#: build/templates/build/detail.html:204
msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:208
+#: build/templates/build/detail.html:211
msgid "Allocate selected items"
msgstr ""
-#: build/templates/build/detail.html:218
+#: build/templates/build/detail.html:221
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:230
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:231
+#: build/templates/build/detail.html:234
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:232
+#: build/templates/build/detail.html:235
msgid "New Build Output"
msgstr ""
-#: build/templates/build/detail.html:246
+#: build/templates/build/detail.html:249
msgid "Output Actions"
msgstr ""
-#: build/templates/build/detail.html:250
+#: build/templates/build/detail.html:253
msgid "Complete selected build outputs"
msgstr ""
-#: build/templates/build/detail.html:251
+#: build/templates/build/detail.html:254
msgid "Complete outputs"
msgstr ""
-#: build/templates/build/detail.html:253
+#: build/templates/build/detail.html:256
msgid "Delete selected build outputs"
msgstr ""
-#: build/templates/build/detail.html:254
+#: build/templates/build/detail.html:257
msgid "Delete outputs"
msgstr ""
-#: build/templates/build/detail.html:270
+#: build/templates/build/detail.html:273
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19
+#: build/templates/build/detail.html:285 build/templates/build/sidebar.html:19
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:107
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:222
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217
#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:105
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:298
+#: build/templates/build/detail.html:301
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:302 build/templates/build/detail.html:478
-#: company/templates/company/detail.html:188
-#: company/templates/company/detail.html:215
+#: build/templates/build/detail.html:305 build/templates/build/detail.html:481
+#: company/templates/company/detail.html:190
+#: company/templates/company/detail.html:217
#: order/templates/order/purchase_order_detail.html:80
#: order/templates/order/purchase_order_detail.html:108
#: order/templates/order/sales_order_detail.html:127
#: order/templates/order/sales_order_detail.html:186
-#: part/templates/part/detail.html:150 stock/templates/stock/item.html:125
+#: part/templates/part/detail.html:145 stock/templates/stock/item.html:125
#: stock/templates/stock/item.html:223
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:519
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:520
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:329
+#: build/templates/build/index.html:18 part/templates/part/detail.html:322
msgid "New Build Order"
msgstr ""
@@ -1658,7 +1686,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:732 part/models.py:2527 report/models.py:187
+#: common/models.py:732 part/models.py:2541 report/models.py:187
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:417
msgid "Template"
@@ -1668,7 +1696,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:739 part/models.py:951 templates/js/translated/bom.js:1300
+#: common/models.py:739 part/models.py:951 templates/js/translated/bom.js:1305
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:429
msgid "Assembly"
@@ -2243,7 +2271,7 @@ msgstr ""
#: common/models.py:1325 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:937 templates/js/translated/part.js:1889
+#: templates/js/translated/part.js:938 templates/js/translated/part.js:1890
msgid "Price"
msgstr ""
@@ -2337,14 +2365,14 @@ msgstr ""
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
-#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:210
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208
#: templates/patterns/wizard/upload.html:35
msgid "Upload File"
msgstr ""
#: common/views.py:94 order/views.py:244
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:211
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:209
#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
@@ -2472,7 +2500,7 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:508
+#: company/models.py:320 company/models.py:535 stock/models.py:560
#: stock/templates/stock/item_base.html:137 templates/js/translated/bom.js:541
msgid "Base Part"
msgstr ""
@@ -2499,8 +2527,8 @@ msgstr ""
#: company/models.py:342 company/templates/company/manufacturer_part.html:96
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1124
-#: templates/js/translated/part.js:245 templates/js/translated/part.js:895
+#: templates/js/translated/company.js:818 templates/js/translated/order.js:1211
+#: templates/js/translated/part.js:245 templates/js/translated/part.js:896
msgid "MPN"
msgstr ""
@@ -2529,8 +2557,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2064 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1331
+#: stock/models.py:2116 templates/js/translated/company.js:647
+#: templates/js/translated/part.js:716 templates/js/translated/stock.js:1287
msgid "Value"
msgstr ""
@@ -2538,10 +2566,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:945 part/models.py:2495
+#: company/models.py:429 part/models.py:945 part/models.py:2509
#: part/templates/part/part_base.html:288
#: templates/InvenTree/settings/settings.html:324
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:721
+#: templates/js/translated/company.js:653 templates/js/translated/part.js:722
msgid "Units"
msgstr ""
@@ -2559,8 +2587,8 @@ msgstr ""
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237
#: part/bom.py:265 stock/templates/stock/item_base.html:376
#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:898
-#: templates/js/translated/part.js:215 templates/js/translated/part.js:863
+#: templates/js/translated/company.js:774 templates/js/translated/order.js:958
+#: templates/js/translated/part.js:215 templates/js/translated/part.js:864
#: templates/js/translated/table_filters.js:388
msgid "Supplier"
msgstr ""
@@ -2570,8 +2598,8 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1111
-#: templates/js/translated/part.js:226 templates/js/translated/part.js:881
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198
+#: templates/js/translated/part.js:226 templates/js/translated/part.js:882
msgid "SKU"
msgstr ""
@@ -2592,7 +2620,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:119
-#: part/models.py:2719 part/templates/part/upload_bom.html:59
+#: part/models.py:2734 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409
msgid "Note"
@@ -2607,8 +2635,8 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:532 stock/templates/stock/item_base.html:317
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1931
+#: stock/models.py:584 stock/templates/stock/item_base.html:317
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1887
msgid "Packaging"
msgstr ""
@@ -2676,11 +2704,11 @@ msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:83 order/models.py:574
-#: order/templates/order/sales_order_base.html:115 stock/models.py:551
-#: stock/models.py:552 stock/serializers.py:683
+#: order/templates/order/sales_order_base.html:115 stock/models.py:603
+#: stock/models.py:604 stock/serializers.py:683
#: stock/templates/stock/item_base.html:269
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1348
-#: templates/js/translated/stock.js:2735
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1436
+#: templates/js/translated/stock.js:2691
#: templates/js/translated/table_filters.js:392
msgid "Customer"
msgstr ""
@@ -2711,7 +2739,7 @@ msgstr ""
#: company/templates/company/detail.html:20
#: company/templates/company/manufacturer_part.html:118
-#: part/templates/part/detail.html:367
+#: part/templates/part/detail.html:360
msgid "New Supplier Part"
msgstr ""
@@ -2719,14 +2747,14 @@ msgstr ""
#: company/templates/company/detail.html:79
#: company/templates/company/manufacturer_part.html:127
#: company/templates/company/manufacturer_part.html:156
-#: part/templates/part/category.html:171 part/templates/part/detail.html:376
-#: part/templates/part/detail.html:405
+#: part/templates/part/category.html:168 part/templates/part/detail.html:369
+#: part/templates/part/detail.html:398
msgid "Options"
msgstr ""
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177
+#: part/templates/part/category.html:174
msgid "Order parts"
msgstr ""
@@ -2748,7 +2776,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:395
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:388
msgid "New Manufacturer Part"
msgstr ""
@@ -2762,7 +2790,7 @@ msgstr ""
#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:40
+#: part/templates/part/detail.html:80 part/templates/part/part_sidebar.html:40
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
@@ -2784,7 +2812,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:44
+#: part/templates/part/detail.html:103 part/templates/part/part_sidebar.html:44
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
@@ -2802,23 +2830,23 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/detail.html:168
-#: templates/js/translated/build.js:1281
+#: templates/js/translated/build.js:1282
msgid "Assigned Stock"
msgstr ""
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:186
msgid "Company Notes"
msgstr ""
-#: company/templates/company/detail.html:384
+#: company/templates/company/detail.html:380
#: company/templates/company/manufacturer_part.html:215
-#: part/templates/part/detail.html:449
+#: part/templates/part/detail.html:442
msgid "Delete Supplier Parts?"
msgstr ""
-#: company/templates/company/detail.html:385
+#: company/templates/company/detail.html:381
#: company/templates/company/manufacturer_part.html:216
-#: part/templates/part/detail.html:450
+#: part/templates/part/detail.html:443
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2835,7 +2863,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:34
#: company/templates/company/supplier_part.html:159
-#: part/templates/part/detail.html:88 part/templates/part/part_base.html:76
+#: part/templates/part/detail.html:83 part/templates/part/part_base.html:76
msgid "Order part"
msgstr ""
@@ -2862,14 +2890,14 @@ msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
-#: part/templates/part/detail.html:378
+#: part/templates/part/detail.html:371
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
#: company/templates/company/manufacturer_part.html:158
#: company/templates/company/manufacturer_part.html:254
-#: part/templates/part/detail.html:378 part/templates/part/detail.html:407
+#: part/templates/part/detail.html:371 part/templates/part/detail.html:400
#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31
#: users/models.py:217
msgid "Delete"
@@ -2878,12 +2906,12 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:143
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:17
-#: part/templates/part/detail.html:196 part/templates/part/part_sidebar.html:9
+#: part/templates/part/detail.html:191 part/templates/part/part_sidebar.html:9
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:147
-#: part/templates/part/detail.html:201
+#: part/templates/part/detail.html:196
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:66
msgid "New Parameter"
@@ -2894,7 +2922,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:191
-#: part/templates/part/detail.html:908
+#: part/templates/part/detail.html:894
msgid "Add Parameter"
msgstr ""
@@ -2923,9 +2951,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:516
+#: company/templates/company/supplier_part.html:24 stock/models.py:568
#: stock/templates/stock/item_base.html:381
-#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1888
+#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1844
msgid "Supplier Part"
msgstr ""
@@ -2951,7 +2979,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:166
-#: templates/js/translated/stock.js:368
+#: templates/js/translated/stock.js:367
msgid "New Stock Item"
msgstr ""
@@ -2961,7 +2989,7 @@ msgid "Supplier Part Orders"
msgstr ""
#: company/templates/company/supplier_part.html:160
-#: part/templates/part/detail.html:89
+#: part/templates/part/detail.html:84
msgid "Order Part"
msgstr ""
@@ -2972,7 +3000,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1319
+#: part/templates/part/prices.html:271 part/views.py:1254
msgid "Add Price Break"
msgstr ""
@@ -2980,11 +3008,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1381
+#: company/templates/company/supplier_part.html:224 part/views.py:1316
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1367
+#: company/templates/company/supplier_part.html:238 part/views.py:1302
msgid "Edit Price Break"
msgstr ""
@@ -3002,10 +3030,10 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:150
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/bom.js:553 templates/js/translated/part.js:495
-#: templates/js/translated/part.js:630 templates/js/translated/part.js:1147
-#: templates/js/translated/part.js:1308 templates/js/translated/stock.js:935
-#: templates/js/translated/stock.js:1711 templates/navbar.html:28
+#: templates/js/translated/bom.js:553 templates/js/translated/part.js:496
+#: templates/js/translated/part.js:631 templates/js/translated/part.js:1148
+#: templates/js/translated/part.js:1309 templates/js/translated/stock.js:891
+#: templates/js/translated/stock.js:1667 templates/navbar.html:28
msgid "Stock"
msgstr ""
@@ -3028,7 +3056,7 @@ msgstr ""
#: stock/templates/stock/location.html:150
#: stock/templates/stock/location.html:162
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2641
+#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2597
#: templates/stats.html:105 templates/stats.html:114 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -3058,20 +3086,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:591
+#: company/views.py:129 part/views.py:589
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:623
+#: company/views.py:158 part/views.py:621
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:630
+#: company/views.py:165 part/views.py:628
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:639
+#: company/views.py:174 part/views.py:637
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3190,7 +3218,7 @@ msgid "Company from which the items are being ordered"
msgstr ""
#: order/models.py:231 order/templates/order/order_base.html:118
-#: templates/js/translated/order.js:907
+#: templates/js/translated/order.js:967
msgid "Supplier Reference"
msgstr ""
@@ -3247,7 +3275,7 @@ msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
#: order/models.py:589 order/models.py:1084
-#: templates/js/translated/order.js:1395 templates/js/translated/order.js:1546
+#: templates/js/translated/order.js:1483 templates/js/translated/order.js:1634
msgid "Shipment Date"
msgstr ""
@@ -3292,7 +3320,7 @@ msgid "Supplier part must match supplier"
msgstr ""
#: order/models.py:891 order/models.py:982 order/models.py:1078
-#: templates/js/translated/order.js:1937 templates/js/translated/stock.js:2403
+#: templates/js/translated/order.js:2025 templates/js/translated/stock.js:2359
msgid "Order"
msgstr ""
@@ -3300,8 +3328,8 @@ msgstr ""
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:331
-#: templates/js/translated/order.js:876 templates/js/translated/part.js:838
-#: templates/js/translated/stock.js:1865 templates/js/translated/stock.js:2716
+#: templates/js/translated/order.js:936 templates/js/translated/part.js:839
+#: templates/js/translated/stock.js:1821 templates/js/translated/stock.js:2672
msgid "Purchase Order"
msgstr ""
@@ -3310,8 +3338,8 @@ msgid "Supplier part"
msgstr ""
#: order/models.py:920 order/templates/order/order_base.html:163
-#: templates/js/translated/order.js:654 templates/js/translated/order.js:1226
-#: templates/js/translated/part.js:932 templates/js/translated/part.js:959
+#: templates/js/translated/order.js:714 templates/js/translated/order.js:1313
+#: templates/js/translated/part.js:933 templates/js/translated/part.js:960
#: templates/js/translated/table_filters.js:312
msgid "Received"
msgstr ""
@@ -3320,9 +3348,9 @@ msgstr ""
msgid "Number of items received"
msgstr ""
-#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:645
+#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:697
#: stock/serializers.py:170 stock/templates/stock/item_base.html:338
-#: templates/js/translated/stock.js:1919
+#: templates/js/translated/stock.js:1875
msgid "Purchase Price"
msgstr ""
@@ -3456,11 +3484,11 @@ msgstr ""
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:273 templates/js/translated/order.js:514
+#: order/serializers.py:273 templates/js/translated/order.js:574
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:281 templates/js/translated/order.js:525
+#: order/serializers.py:281 templates/js/translated/order.js:585
msgid "Enter serial numbers for incoming stock items"
msgstr ""
@@ -3578,7 +3606,7 @@ msgstr ""
#: order/templates/order/order_base.html:94
#: order/templates/order/sales_order_base.html:89
-#: templates/js/translated/stock.js:2459
+#: templates/js/translated/stock.js:2415
msgid "Order Status"
msgstr ""
@@ -3650,10 +3678,10 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/bom.js:76 templates/js/translated/build.js:380
-#: templates/js/translated/build.js:528 templates/js/translated/build.js:1547
-#: templates/js/translated/order.js:602 templates/js/translated/order.js:1605
-#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769
+#: templates/js/translated/bom.js:76 templates/js/translated/build.js:381
+#: templates/js/translated/build.js:529 templates/js/translated/build.js:1558
+#: templates/js/translated/order.js:662 templates/js/translated/order.js:1693
+#: templates/js/translated/stock.js:557 templates/js/translated/stock.js:725
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr ""
@@ -3717,8 +3745,8 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:940 templates/js/translated/order.js:1403
-#: templates/js/translated/order.js:1533
+#: templates/js/translated/order.js:1000 templates/js/translated/order.js:1491
+#: templates/js/translated/order.js:1621
msgid "Items"
msgstr ""
@@ -3752,9 +3780,9 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:27
-#: order/templates/order/purchase_order_detail.html:182
+#: order/templates/order/purchase_order_detail.html:166
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:245
+#: order/templates/order/sales_order_detail.html:233
msgid "Add Line Item"
msgstr ""
@@ -3794,7 +3822,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:122
-#: templates/js/translated/order.js:1361
+#: templates/js/translated/order.js:1449
msgid "Customer Reference"
msgstr ""
@@ -3827,7 +3855,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:48
-#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1465
+#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1466
msgid "Actions"
msgstr ""
@@ -3902,31 +3930,31 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:499
+#: part/api.py:502
msgid "Valid"
msgstr ""
-#: part/api.py:500
+#: part/api.py:503
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:505
+#: part/api.py:508
msgid "This option must be selected"
msgstr ""
-#: part/api.py:847
+#: part/api.py:866
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:851
+#: part/api.py:870
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:866
+#: part/api.py:885
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:897 part/api.py:901 part/api.py:916 part/api.py:920
+#: part/api.py:916 part/api.py:920 part/api.py:935 part/api.py:939
msgid "This field is required"
msgstr ""
@@ -3944,7 +3972,7 @@ msgid "Available Stock"
msgstr ""
#: part/bom.py:128 part/templates/part/part_base.html:203
-#: templates/js/translated/part.js:1323
+#: templates/js/translated/part.js:1324
msgid "On Order"
msgstr ""
@@ -3976,7 +4004,7 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:97 part/models.py:2571 part/templates/part/category.html:15
+#: part/models.py:97 part/models.py:2585 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -3993,7 +4021,7 @@ msgstr ""
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:37
-#: templates/js/translated/part.js:1685 templates/navbar.html:21
+#: templates/js/translated/part.js:1686 templates/navbar.html:21
#: templates/stats.html:92 templates/stats.html:101 users/models.py:41
msgid "Parts"
msgstr ""
@@ -4023,7 +4051,7 @@ msgstr ""
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:803 part/models.py:2624
+#: part/models.py:803 part/models.py:2638
msgid "Part name"
msgstr ""
@@ -4056,11 +4084,11 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:841 part/models.py:2321 part/models.py:2570
+#: part/models.py:841 part/models.py:2335 part/models.py:2584
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:223
-#: templates/js/translated/part.js:1290
+#: templates/js/translated/part.js:1291
msgid "Category"
msgstr ""
@@ -4069,8 +4097,8 @@ msgid "Part category"
msgstr ""
#: part/models.py:847 part/templates/part/part_base.html:274
-#: templates/js/translated/part.js:618 templates/js/translated/part.js:1243
-#: templates/js/translated/stock.js:1683
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:1244
+#: templates/js/translated/stock.js:1639
msgid "IPN"
msgstr ""
@@ -4083,7 +4111,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:855 part/templates/part/part_base.html:281
-#: report/models.py:200 templates/js/translated/part.js:622
+#: report/models.py:200 templates/js/translated/part.js:623
msgid "Revision"
msgstr ""
@@ -4175,301 +4203,309 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2371
+#: part/models.py:2385
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2388
+#: part/models.py:2402
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2408 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:1311
+#: part/models.py:2422 templates/js/translated/part.js:1737
+#: templates/js/translated/stock.js:1267
msgid "Test Name"
msgstr ""
-#: part/models.py:2409
+#: part/models.py:2423
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2414
+#: part/models.py:2428
msgid "Test Description"
msgstr ""
-#: part/models.py:2415
+#: part/models.py:2429
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2420 templates/js/translated/part.js:1745
+#: part/models.py:2434 templates/js/translated/part.js:1746
#: templates/js/translated/table_filters.js:276
msgid "Required"
msgstr ""
-#: part/models.py:2421
+#: part/models.py:2435
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2426 templates/js/translated/part.js:1753
+#: part/models.py:2440 templates/js/translated/part.js:1754
msgid "Requires Value"
msgstr ""
-#: part/models.py:2427
+#: part/models.py:2441
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2432 templates/js/translated/part.js:1760
+#: part/models.py:2446 templates/js/translated/part.js:1761
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2433
+#: part/models.py:2447
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2444
+#: part/models.py:2458
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2480
+#: part/models.py:2494
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2488
+#: part/models.py:2502
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2495
+#: part/models.py:2509
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2525
+#: part/models.py:2539
msgid "Parent Part"
msgstr ""
-#: part/models.py:2527 part/models.py:2576 part/models.py:2577
+#: part/models.py:2541 part/models.py:2590 part/models.py:2591
#: templates/InvenTree/settings/settings.html:218
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2529
+#: part/models.py:2543
msgid "Data"
msgstr ""
-#: part/models.py:2529
+#: part/models.py:2543
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2581 templates/InvenTree/settings/settings.html:227
+#: part/models.py:2595 templates/InvenTree/settings/settings.html:227
msgid "Default Value"
msgstr ""
-#: part/models.py:2582
+#: part/models.py:2596
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2616
+#: part/models.py:2630
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2619 templates/js/translated/model_renderers.js:182
+#: part/models.py:2633 templates/js/translated/model_renderers.js:182
msgid "Part ID"
msgstr ""
-#: part/models.py:2620
+#: part/models.py:2634
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2623
+#: part/models.py:2637
msgid "Part Name"
msgstr ""
-#: part/models.py:2627
+#: part/models.py:2641
msgid "Part IPN"
msgstr ""
-#: part/models.py:2628
+#: part/models.py:2642
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2645
msgid "Level"
msgstr ""
-#: part/models.py:2632
+#: part/models.py:2646
msgid "BOM level"
msgstr ""
-#: part/models.py:2692
+#: part/models.py:2707
msgid "Select parent part"
msgstr ""
-#: part/models.py:2700
+#: part/models.py:2715
msgid "Sub part"
msgstr ""
-#: part/models.py:2701
+#: part/models.py:2716
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2707
+#: part/models.py:2722
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2709 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:791 templates/js/translated/bom.js:865
+#: part/models.py:2724 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2709
+#: part/models.py:2724
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2712 part/templates/part/upload_bom.html:55
+#: part/models.py:2727 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2713
+#: part/models.py:2728
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2716
+#: part/models.py:2731
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2719
+#: part/models.py:2734
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2721
+#: part/models.py:2736
msgid "Checksum"
msgstr ""
-#: part/models.py:2721
+#: part/models.py:2736
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2725 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:882
+#: part/models.py:2740 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:880
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2726
+#: part/models.py:2741
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2731 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:874
+#: part/models.py:2746 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:872
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2732
+#: part/models.py:2747
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2817 stock/models.py:394
+#: part/models.py:2832 stock/models.py:446
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2826 part/models.py:2828
+#: part/models.py:2841 part/models.py:2843
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2957
+#: part/models.py:2972
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2979
+#: part/models.py:2994
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2991
+#: part/models.py:3006
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2999
+#: part/models.py:3014
msgid "Substitute part"
msgstr ""
-#: part/models.py:3010
+#: part/models.py:3025
msgid "Part 1"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3029
msgid "Part 2"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3029
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3046
+#: part/models.py:3061
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
-#: part/serializers.py:667
+#: part/serializers.py:670
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:678
+#: part/serializers.py:681
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:679
+#: part/serializers.py:682
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:684
+#: part/serializers.py:687
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:685
+#: part/serializers.py:688
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:690
+#: part/serializers.py:693
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:691
+#: part/serializers.py:694
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:699
+msgid "Copy Substitute Parts"
+msgstr ""
+
+#: part/serializers.py:700
+msgid "Copy substitute parts when duplicate BOM items"
+msgstr ""
+
+#: part/serializers.py:744
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:735
+#: part/serializers.py:745
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:762
+#: part/serializers.py:772
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:805
+#: part/serializers.py:815
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:808
+#: part/serializers.py:818
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:811
+#: part/serializers.py:821
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:820
+#: part/serializers.py:830
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:828
+#: part/serializers.py:838
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:847
+#: part/serializers.py:857
msgid "At least one BOM item is required"
msgstr ""
@@ -4496,7 +4532,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:279
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:274
msgid "BOM actions"
msgstr ""
@@ -4548,7 +4584,7 @@ msgstr ""
msgid "Top level part category"
msgstr ""
-#: part/templates/part/category.html:114 part/templates/part/category.html:205
+#: part/templates/part/category.html:114 part/templates/part/category.html:202
#: part/templates/part/category_sidebar.html:7
msgid "Subcategories"
msgstr ""
@@ -4557,55 +4593,51 @@ msgstr ""
msgid "Parts (Including subcategories)"
msgstr ""
-#: part/templates/part/category.html:156
-msgid "Export Part Data"
-msgstr ""
-
-#: part/templates/part/category.html:157 part/templates/part/category.html:181
-msgid "Export"
-msgstr ""
-
-#: part/templates/part/category.html:160
+#: part/templates/part/category.html:157
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:161 templates/js/translated/bom.js:365
+#: part/templates/part/category.html:158 templates/js/translated/bom.js:365
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:175
+#: part/templates/part/category.html:172
msgid "Set category"
msgstr ""
-#: part/templates/part/category.html:175
+#: part/templates/part/category.html:172
msgid "Set Category"
msgstr ""
-#: part/templates/part/category.html:179
+#: part/templates/part/category.html:176
msgid "Print Labels"
msgstr ""
-#: part/templates/part/category.html:181
+#: part/templates/part/category.html:178
+msgid "Export"
+msgstr ""
+
+#: part/templates/part/category.html:178
msgid "Export Data"
msgstr ""
-#: part/templates/part/category.html:195
+#: part/templates/part/category.html:192
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:288
+#: part/templates/part/category.html:285
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:315
+#: part/templates/part/category.html:305
msgid "Create Part"
msgstr ""
-#: part/templates/part/category.html:318
+#: part/templates/part/category.html:308
msgid "Create another part after this one"
msgstr ""
-#: part/templates/part/category.html:319
+#: part/templates/part/category.html:309
msgid "Part created successfully"
msgstr ""
@@ -4676,155 +4708,150 @@ msgstr ""
msgid "Part Stock"
msgstr ""
-#: part/templates/part/detail.html:33
-#, python-format
-msgid "Showing stock for all variants of %(full_name)s"
-msgstr ""
-
-#: part/templates/part/detail.html:43
+#: part/templates/part/detail.html:38
msgid "Part Stock Allocations"
msgstr ""
-#: part/templates/part/detail.html:60
+#: part/templates/part/detail.html:55
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:65
+#: part/templates/part/detail.html:60
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:122
+#: part/templates/part/detail.html:117
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:168
+#: part/templates/part/detail.html:163
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:172
+#: part/templates/part/detail.html:167
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:173
+#: part/templates/part/detail.html:168
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:200
+#: part/templates/part/detail.html:195
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:237 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:52
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:241 part/templates/part/detail.html:242
+#: part/templates/part/detail.html:236 part/templates/part/detail.html:237
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:262 part/templates/part/part_sidebar.html:18
+#: part/templates/part/detail.html:257 part/templates/part/part_sidebar.html:18
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:267
+#: part/templates/part/detail.html:262
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:271 templates/js/translated/bom.js:283
+#: part/templates/part/detail.html:266 templates/js/translated/bom.js:283
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:268
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:283
+#: part/templates/part/detail.html:278
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:285 templates/js/translated/part.js:272
+#: part/templates/part/detail.html:279 templates/js/translated/part.js:272
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:287
+#: part/templates/part/detail.html:280
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:285
msgid "New BOM Item"
msgstr ""
-#: part/templates/part/detail.html:293
+#: part/templates/part/detail.html:286
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:306
+#: part/templates/part/detail.html:299
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:323
+#: part/templates/part/detail.html:316
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:348
+#: part/templates/part/detail.html:341
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:363
+#: part/templates/part/detail.html:356
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:391
+#: part/templates/part/detail.html:384
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:407
+#: part/templates/part/detail.html:400
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:589
+#: part/templates/part/detail.html:582
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:590
+#: part/templates/part/detail.html:583
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:639
+#: part/templates/part/detail.html:632
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:696
+#: part/templates/part/detail.html:689
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:704
+#: part/templates/part/detail.html:697
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:801
+#: part/templates/part/detail.html:794
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:858
+#: part/templates/part/detail.html:844
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:971
+#: part/templates/part/detail.html:957
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:983
+#: part/templates/part/detail.html:969
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:995
+#: part/templates/part/detail.html:981
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1084
+#: part/templates/part/detail.html:1070
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4969,7 +4996,7 @@ msgstr ""
#: templates/js/translated/company.js:508
#: templates/js/translated/company.js:765
#: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:533 templates/js/translated/part.js:610
+#: templates/js/translated/part.js:534 templates/js/translated/part.js:611
msgid "Inactive"
msgstr ""
@@ -4983,7 +5010,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2356
+#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2444
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5000,12 +5027,12 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:903
+#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:901
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1154
-#: templates/js/translated/part.js:1327
+#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1155
+#: templates/js/translated/part.js:1328
msgid "Building"
msgstr ""
@@ -5057,7 +5084,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:857
+#: templates/js/translated/bom.js:855
msgid "No supplier pricing available"
msgstr ""
@@ -5177,7 +5204,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:851
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849
msgid "Supplier Cost"
msgstr ""
@@ -5199,7 +5226,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1390
+#: part/templates/part/prices.html:215 part/views.py:1325
msgid "Add Internal Price Break"
msgstr ""
@@ -5219,9 +5246,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813
-#: templates/js/translated/part.js:497 templates/js/translated/part.js:1144
-#: templates/js/translated/part.js:1331
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811
+#: templates/js/translated/part.js:498 templates/js/translated/part.js:1145
+#: templates/js/translated/part.js:1332
msgid "No Stock"
msgstr ""
@@ -5275,100 +5302,100 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:172
+#: part/templatetags/inventree_extras.py:174
msgid "Unknown database"
msgstr ""
-#: part/views.py:90
+#: part/views.py:88
msgid "Set Part Category"
msgstr ""
-#: part/views.py:140
+#: part/views.py:138
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:212
+#: part/views.py:210
msgid "Match References"
msgstr ""
-#: part/views.py:509
+#: part/views.py:507
msgid "None"
msgstr ""
-#: part/views.py:568
+#: part/views.py:566
msgid "Part QR Code"
msgstr ""
-#: part/views.py:670
+#: part/views.py:668
msgid "Select Part Image"
msgstr ""
-#: part/views.py:696
+#: part/views.py:694
msgid "Updated part image"
msgstr ""
-#: part/views.py:699
+#: part/views.py:697
msgid "Part image not found"
msgstr ""
-#: part/views.py:850
+#: part/views.py:785
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:857
+#: part/views.py:792
msgid "Part was deleted"
msgstr ""
-#: part/views.py:866
+#: part/views.py:801
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1015
+#: part/views.py:950
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1025
+#: part/views.py:960
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1032
+#: part/views.py:967
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1091 templates/js/translated/part.js:315
+#: part/views.py:1026 templates/js/translated/part.js:315
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1129
+#: part/views.py:1064
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1135
+#: part/views.py:1070
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1144
+#: part/views.py:1079
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1245
+#: part/views.py:1180
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1301
+#: part/views.py:1236
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1323
+#: part/views.py:1258
msgid "Added new price break"
msgstr ""
-#: part/views.py:1399
+#: part/views.py:1334
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1407
+#: part/views.py:1342
msgid "Delete Internal Price Break"
msgstr ""
@@ -5574,12 +5601,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:556 stock/templates/stock/item_base.html:151
-#: templates/js/translated/build.js:373 templates/js/translated/build.js:521
-#: templates/js/translated/build.js:919 templates/js/translated/build.js:1295
+#: stock/models.py:608 stock/templates/stock/item_base.html:151
+#: templates/js/translated/build.js:374 templates/js/translated/build.js:522
+#: templates/js/translated/build.js:920 templates/js/translated/build.js:1296
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:99 templates/js/translated/order.js:2062
-#: templates/js/translated/order.js:2151 templates/js/translated/stock.js:423
+#: templates/js/translated/order.js:99 templates/js/translated/order.js:2150
+#: templates/js/translated/order.js:2239 templates/js/translated/stock.js:422
msgid "Serial Number"
msgstr ""
@@ -5588,19 +5615,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:2052
+#: stock/models.py:2104
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:2058
+#: stock/models.py:2110
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:50
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:924 templates/js/translated/stock.js:2657
+#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2613
msgid "Date"
msgstr ""
@@ -5618,26 +5645,26 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756
-#: templates/js/translated/stock.js:2910
+#: templates/js/translated/stock.js:542 templates/js/translated/stock.js:712
+#: templates/js/translated/stock.js:2866
msgid "Serial"
msgstr ""
-#: stock/api.py:501
+#: stock/api.py:503
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:508
+#: stock/api.py:510
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:533
+#: stock/api.py:535
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/forms.py:74 stock/forms.py:198 stock/models.py:613
+#: stock/forms.py:74 stock/forms.py:198 stock/models.py:665
#: stock/templates/stock/item_base.html:188
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1791
msgid "Expiry Date"
msgstr ""
@@ -5677,228 +5704,228 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:62 stock/models.py:650
+#: stock/models.py:62 stock/models.py:702
#: stock/templates/stock/item_base.html:402
msgid "Owner"
msgstr ""
-#: stock/models.py:63 stock/models.py:651
+#: stock/models.py:63 stock/models.py:703
msgid "Select Owner"
msgstr ""
-#: stock/models.py:375
+#: stock/models.py:427
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:463
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:421 stock/models.py:430
+#: stock/models.py:473 stock/models.py:482
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:422
+#: stock/models.py:474
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:444
+#: stock/models.py:496
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:450
+#: stock/models.py:502
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:457
+#: stock/models.py:509
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:500
+#: stock/models.py:552
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:509
+#: stock/models.py:561
msgid "Base part"
msgstr ""
-#: stock/models.py:517
+#: stock/models.py:569
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:523 stock/templates/stock/location.html:16
+#: stock/models.py:575 stock/templates/stock/location.html:16
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:526
+#: stock/models.py:578
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:585
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:539 stock/templates/stock/item_base.html:277
+#: stock/models.py:591 stock/templates/stock/item_base.html:277
msgid "Installed In"
msgstr ""
-#: stock/models.py:542
+#: stock/models.py:594
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:558
+#: stock/models.py:610
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:572
+#: stock/models.py:624
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:576
+#: stock/models.py:628
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:585
+#: stock/models.py:637
msgid "Source Build"
msgstr ""
-#: stock/models.py:587
+#: stock/models.py:639
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:598
+#: stock/models.py:650
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:601
+#: stock/models.py:653
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:607
+#: stock/models.py:659
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:614
+#: stock/models.py:666
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:627
+#: stock/models.py:679
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:627
+#: stock/models.py:679
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:637 stock/templates/stock/item.html:121
+#: stock/models.py:689 stock/templates/stock/item.html:121
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:646
+#: stock/models.py:698
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1171
+#: stock/models.py:1223
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1177
+#: stock/models.py:1229
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1183
+#: stock/models.py:1235
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1186
+#: stock/models.py:1238
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1189
+#: stock/models.py:1241
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1196
+#: stock/models.py:1248
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1267
+#: stock/models.py:1319
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1270
+#: stock/models.py:1322
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1273
+#: stock/models.py:1325
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1276
+#: stock/models.py:1328
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1279
+#: stock/models.py:1331
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1282
+#: stock/models.py:1334
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1289 stock/serializers.py:832
+#: stock/models.py:1341 stock/serializers.py:832
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1293
+#: stock/models.py:1345
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1297
+#: stock/models.py:1349
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1301
+#: stock/models.py:1353
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1473
+#: stock/models.py:1525
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1972
+#: stock/models.py:2024
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2029
+#: stock/models.py:2081
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2035
+#: stock/models.py:2087
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2053
+#: stock/models.py:2105
msgid "Test name"
msgstr ""
-#: stock/models.py:2059
+#: stock/models.py:2111
msgid "Test result"
msgstr ""
-#: stock/models.py:2065
+#: stock/models.py:2117
msgid "Test output value"
msgstr ""
-#: stock/models.py:2072
+#: stock/models.py:2124
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2078
+#: stock/models.py:2130
msgid "Test notes"
msgstr ""
@@ -5935,7 +5962,7 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:363 stock/views.py:1127
+#: stock/serializers.py:363 stock/views.py:1009
msgid "Serial numbers already exist"
msgstr ""
@@ -6052,11 +6079,11 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:147 templates/js/translated/stock.js:3019
+#: stock/templates/stock/item.html:147 templates/js/translated/stock.js:2975
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1479
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1435
msgid "Add Test Result"
msgstr ""
@@ -6070,7 +6097,7 @@ msgstr ""
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:46 templates/stock_table.html:24
+#: stock/templates/stock/item_base.html:46 templates/stock_table.html:21
msgid "Scan to Location"
msgstr ""
@@ -6083,15 +6110,15 @@ msgid "Stock adjustment actions"
msgstr ""
#: stock/templates/stock/item_base.html:69
-#: stock/templates/stock/location.html:52 templates/stock_table.html:50
+#: stock/templates/stock/location.html:52 templates/stock_table.html:47
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48
+#: stock/templates/stock/item_base.html:72 templates/stock_table.html:45
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49
+#: stock/templates/stock/item_base.html:75 templates/stock_table.html:46
msgid "Remove stock"
msgstr ""
@@ -6100,11 +6127,11 @@ msgid "Serialize stock"
msgstr ""
#: stock/templates/stock/item_base.html:82
-#: stock/templates/stock/location.html:58 templates/stock_table.html:51
+#: stock/templates/stock/location.html:58 templates/stock_table.html:48
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85 templates/stock_table.html:54
+#: stock/templates/stock/item_base.html:85 templates/stock_table.html:51
msgid "Assign to customer"
msgstr ""
@@ -6181,7 +6208,7 @@ msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:201
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1807
msgid "Last Updated"
msgstr ""
@@ -6218,7 +6245,7 @@ msgid "This stock item is serialized - it has a unique serial number and the qua
msgstr ""
#: stock/templates/stock/item_base.html:296
-#: templates/js/translated/build.js:1317
+#: templates/js/translated/build.js:1318
msgid "No location set"
msgstr ""
@@ -6320,11 +6347,11 @@ msgstr ""
msgid "Stock Locations"
msgstr ""
-#: stock/templates/stock/location.html:185 templates/stock_table.html:30
+#: stock/templates/stock/location.html:185 templates/stock_table.html:27
msgid "Printing Actions"
msgstr ""
-#: stock/templates/stock/location.html:189 templates/stock_table.html:34
+#: stock/templates/stock/location.html:189 templates/stock_table.html:31
msgid "Print labels"
msgstr ""
@@ -6348,7 +6375,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:749
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:631
msgid "Convert Stock Item"
msgstr ""
@@ -6369,95 +6396,95 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181 templates/js/translated/stock.js:139
+#: stock/views.py:152 templates/js/translated/stock.js:138
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:728 stock/views.py:854 stock/views.py:1136
+#: stock/views.py:259 stock/views.py:610 stock/views.py:736 stock/views.py:1018
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:274
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:293
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:302
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:342
+#: stock/views.py:313
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:353
+#: stock/views.py:324
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:370
+#: stock/views.py:341
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:371
+#: stock/views.py:342
msgid "Check the confirmation box"
msgstr ""
-#: stock/views.py:475
+#: stock/views.py:357
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:500
+#: stock/views.py:382
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:597 templates/js/translated/stock.js:1074
+#: stock/views.py:479 templates/js/translated/stock.js:1030
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:608
+#: stock/views.py:490
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:630 templates/js/translated/stock.js:332
+#: stock/views.py:512 templates/js/translated/stock.js:331
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:780
+#: stock/views.py:662
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:881
+#: stock/views.py:763
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1023 templates/js/translated/stock.js:312
+#: stock/views.py:905 templates/js/translated/stock.js:311
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1105
+#: stock/views.py:987
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1205
+#: stock/views.py:1087
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1218
+#: stock/views.py:1100
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1229
+#: stock/views.py:1111
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1236
+#: stock/views.py:1118
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1245
+#: stock/views.py:1127
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -7381,14 +7408,14 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1335
+#: templates/js/translated/bom.js:1340
msgid "Required Quantity"
msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:804 templates/js/translated/build.js:1411
-#: templates/js/translated/build.js:2057
+#: templates/js/translated/bom.js:802 templates/js/translated/build.js:1412
+#: templates/js/translated/build.js:2110
#: templates/js/translated/table_filters.js:178
msgid "Available"
msgstr ""
@@ -7580,7 +7607,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:982
msgid "Remove stock item"
msgstr ""
@@ -7635,12 +7662,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286
-#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518
+#: templates/js/translated/order.js:429 templates/js/translated/tables.js:53
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519
+#: templates/js/translated/order.js:430
msgid "Select file format"
msgstr ""
@@ -7716,275 +7743,307 @@ msgstr ""
msgid "Edit BOM Item Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:741
+#: templates/js/translated/bom.js:739
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:745 templates/js/translated/build.js:1393
+#: templates/js/translated/bom.js:743 templates/js/translated/build.js:1394
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:750
+#: templates/js/translated/bom.js:748
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:822
+#: templates/js/translated/bom.js:820
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:837
+#: templates/js/translated/bom.js:835
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:844
+#: templates/js/translated/bom.js:842
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:893 templates/js/translated/bom.js:982
+#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:953
+#: templates/js/translated/bom.js:951
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:955
+#: templates/js/translated/bom.js:953
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:957
+#: templates/js/translated/bom.js:955
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138
+#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:961 templates/js/translated/bom.js:1121
+#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1060 templates/js/translated/build.js:1137
+#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1138
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1116
+#: templates/js/translated/bom.js:1121
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:1318 templates/js/translated/build.js:1377
+#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1378
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1340
+#: templates/js/translated/bom.js:1345
msgid "Inherited from parent BOM"
msgstr ""
-#: templates/js/translated/build.js:85
+#: templates/js/translated/build.js:86
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:119
+#: templates/js/translated/build.js:120
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:140
+#: templates/js/translated/build.js:141
msgid "Build order is ready to be completed"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:146
msgid "Build Order is incomplete"
msgstr ""
-#: templates/js/translated/build.js:173
+#: templates/js/translated/build.js:174
msgid "Complete Build Order"
msgstr ""
-#: templates/js/translated/build.js:214 templates/js/translated/stock.js:92
-#: templates/js/translated/stock.js:181
+#: templates/js/translated/build.js:215 templates/js/translated/stock.js:91
+#: templates/js/translated/stock.js:180
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:216 templates/js/translated/stock.js:94
-#: templates/js/translated/stock.js:183
+#: templates/js/translated/build.js:217 templates/js/translated/stock.js:93
+#: templates/js/translated/stock.js:182
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/build.js:225
+#: templates/js/translated/build.js:226
msgid "The Bill of Materials contains trackable parts"
msgstr ""
-#: templates/js/translated/build.js:226
+#: templates/js/translated/build.js:227
msgid "Build outputs must be generated individually"
msgstr ""
-#: templates/js/translated/build.js:234
+#: templates/js/translated/build.js:235
msgid "Trackable parts can have serial numbers specified"
msgstr ""
-#: templates/js/translated/build.js:235
+#: templates/js/translated/build.js:236
msgid "Enter serial numbers to generate multiple single build outputs"
msgstr ""
-#: templates/js/translated/build.js:242
+#: templates/js/translated/build.js:243
msgid "Create Build Output"
msgstr ""
-#: templates/js/translated/build.js:273
+#: templates/js/translated/build.js:274
msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:284
+#: templates/js/translated/build.js:285
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:293
+#: templates/js/translated/build.js:294
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:301
+#: templates/js/translated/build.js:302
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:324
+#: templates/js/translated/build.js:325
msgid "Are you sure you wish to unallocate stock items from this build?"
msgstr ""
-#: templates/js/translated/build.js:342
+#: templates/js/translated/build.js:343
msgid "Unallocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:360 templates/js/translated/build.js:508
+#: templates/js/translated/build.js:361 templates/js/translated/build.js:509
msgid "Select Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:361 templates/js/translated/build.js:509
+#: templates/js/translated/build.js:362 templates/js/translated/build.js:510
msgid "At least one build output must be selected"
msgstr ""
-#: templates/js/translated/build.js:415 templates/js/translated/build.js:563
+#: templates/js/translated/build.js:416 templates/js/translated/build.js:564
msgid "Output"
msgstr ""
-#: templates/js/translated/build.js:431
+#: templates/js/translated/build.js:432
msgid "Complete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:576
+#: templates/js/translated/build.js:577
msgid "Delete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:665
+#: templates/js/translated/build.js:666
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:703 templates/js/translated/order.js:1965
+#: templates/js/translated/build.js:704 templates/js/translated/order.js:2053
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:885
+#: templates/js/translated/build.js:886
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1334 templates/js/translated/build.js:2068
-#: templates/js/translated/order.js:2099
+#: templates/js/translated/build.js:1335 templates/js/translated/build.js:2121
+#: templates/js/translated/order.js:2187
msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1336 templates/js/translated/build.js:2069
-#: templates/js/translated/order.js:2100
+#: templates/js/translated/build.js:1337 templates/js/translated/build.js:2122
+#: templates/js/translated/order.js:2188
msgid "Delete stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1354
+#: templates/js/translated/build.js:1355
msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:1364
+#: templates/js/translated/build.js:1365
msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:1389
+#: templates/js/translated/build.js:1390
msgid "Substitute parts available"
msgstr ""
-#: templates/js/translated/build.js:1406
+#: templates/js/translated/build.js:1407
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1416 templates/js/translated/build.js:1656
-#: templates/js/translated/build.js:2064 templates/js/translated/order.js:2366
+#: templates/js/translated/build.js:1417 templates/js/translated/build.js:1667
+#: templates/js/translated/build.js:2117 templates/js/translated/order.js:2454
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1472 templates/js/translated/order.js:2446
+#: templates/js/translated/build.js:1473 templates/js/translated/order.js:2534
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:1476 templates/stock_table.html:53
+#: templates/js/translated/build.js:1477 templates/stock_table.html:50
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1479 templates/js/translated/order.js:2439
+#: templates/js/translated/build.js:1480 templates/js/translated/order.js:2527
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:1558 templates/js/translated/order.js:1616
-msgid "Specify stock allocation quantity"
-msgstr ""
-
-#: templates/js/translated/build.js:1629 templates/js/translated/label.js:134
-#: templates/js/translated/order.js:1667 templates/js/translated/report.js:225
+#: templates/js/translated/build.js:1519 templates/js/translated/label.js:134
+#: templates/js/translated/order.js:1755 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1630 templates/js/translated/order.js:1668
+#: templates/js/translated/build.js:1520 templates/js/translated/order.js:1756
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:1644 templates/js/translated/order.js:1682
+#: templates/js/translated/build.js:1569 templates/js/translated/order.js:1704
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:1640
+msgid "All Parts Allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:1641
+msgid "All selected parts have been fully allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:1655 templates/js/translated/order.js:1770
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1717
+#: templates/js/translated/build.js:1684 templates/js/translated/order.js:1805
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1674
+#: templates/js/translated/build.js:1685
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1730
+#: templates/js/translated/build.js:1696 templates/js/translated/order.js:1818
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1757 templates/js/translated/order.js:1807
+#: templates/js/translated/build.js:1768 templates/js/translated/order.js:1895
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1875
+#: templates/js/translated/build.js:1865
+msgid "Automatic Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1866
+msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
+msgstr ""
+
+#: templates/js/translated/build.js:1868
+msgid "If a location is specifed, stock will only be allocated from that location"
+msgstr ""
+
+#: templates/js/translated/build.js:1869
+msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
+msgstr ""
+
+#: templates/js/translated/build.js:1870
+msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
+msgstr ""
+
+#: templates/js/translated/build.js:1890
+msgid "Allocate Stock Items"
+msgstr ""
+
+#: templates/js/translated/build.js:1928
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1892 templates/js/translated/part.js:1235
-#: templates/js/translated/part.js:1646 templates/js/translated/stock.js:1643
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/build.js:1945 templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1647 templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:2567
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1912
+#: templates/js/translated/build.js:1965
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1976 templates/js/translated/stock.js:2823
+#: templates/js/translated/build.js:2029 templates/js/translated/stock.js:2779
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1988
+#: templates/js/translated/build.js:2041
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:2045
+#: templates/js/translated/build.js:2098
msgid "No parts allocated for"
msgstr ""
@@ -8049,34 +8108,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:517
-#: templates/js/translated/part.js:602
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:518
+#: templates/js/translated/part.js:603
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:521
-#: templates/js/translated/part.js:606
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:522
+#: templates/js/translated/part.js:607
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:696
+#: templates/js/translated/company.js:631 templates/js/translated/part.js:697
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:738
+#: templates/js/translated/company.js:668 templates/js/translated/part.js:739
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:739
+#: templates/js/translated/company.js:669 templates/js/translated/part.js:740
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:756
+#: templates/js/translated/company.js:688 templates/js/translated/part.js:757
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:768
+#: templates/js/translated/company.js:699 templates/js/translated/part.js:769
msgid "Delete Parameter"
msgstr ""
@@ -8085,12 +8144,12 @@ msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:429
+#: templates/js/translated/filters.js:441
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:430
+#: templates/js/translated/filters.js:442
msgid "false"
msgstr ""
@@ -8098,19 +8157,23 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:286
+#: templates/js/translated/filters.js:288
+msgid "Download data"
+msgstr ""
+
+#: templates/js/translated/filters.js:291
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:290
+#: templates/js/translated/filters.js:295
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:293
+#: templates/js/translated/filters.js:298
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:338
+#: templates/js/translated/filters.js:350
msgid "Create filter"
msgstr ""
@@ -8181,7 +8244,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1050
+#: templates/js/translated/stock.js:1006
msgid "Select Stock Items"
msgstr ""
@@ -8354,206 +8417,214 @@ msgstr ""
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:366
+#: templates/js/translated/order.js:426
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:460
+#: templates/js/translated/order.js:520
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:461
+#: templates/js/translated/order.js:521
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:481 templates/js/translated/order.js:580
+#: templates/js/translated/order.js:541 templates/js/translated/order.js:640
msgid "Add batch code"
msgstr ""
-#: templates/js/translated/order.js:487 templates/js/translated/order.js:591
+#: templates/js/translated/order.js:547 templates/js/translated/order.js:651
msgid "Add serial numbers"
msgstr ""
-#: templates/js/translated/order.js:499
+#: templates/js/translated/order.js:559
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:563 templates/js/translated/stock.js:2263
+#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2219
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:652
+#: templates/js/translated/order.js:712
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:653
+#: templates/js/translated/order.js:713
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:655
+#: templates/js/translated/order.js:715
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/order.js:674
+#: templates/js/translated/order.js:734
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:675
+#: templates/js/translated/order.js:735
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:865 templates/js/translated/part.js:809
+#: templates/js/translated/order.js:925 templates/js/translated/part.js:810
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:890 templates/js/translated/order.js:1338
+#: templates/js/translated/order.js:950 templates/js/translated/order.js:1426
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:1018 templates/js/translated/order.js:2496
+#: templates/js/translated/order.js:1074 templates/js/translated/order.js:2585
+msgid "Duplicate Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:1104 templates/js/translated/order.js:2607
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1030 templates/js/translated/order.js:2507
+#: templates/js/translated/order.js:1117 templates/js/translated/order.js:2618
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:1073
+#: templates/js/translated/order.js:1160
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:1100 templates/js/translated/order.js:2255
+#: templates/js/translated/order.js:1187 templates/js/translated/order.js:2343
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:1154 templates/js/translated/order.js:2280
-#: templates/js/translated/part.js:1863 templates/js/translated/part.js:2074
+#: templates/js/translated/order.js:1241 templates/js/translated/order.js:2368
+#: templates/js/translated/part.js:1864 templates/js/translated/part.js:2075
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1169 templates/js/translated/order.js:2296
+#: templates/js/translated/order.js:1256 templates/js/translated/order.js:2384
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:1210 templates/js/translated/order.js:2338
-#: templates/js/translated/part.js:918
+#: templates/js/translated/order.js:1297 templates/js/translated/order.js:2426
+#: templates/js/translated/part.js:919
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:1269 templates/js/translated/part.js:964
+#: templates/js/translated/order.js:1356 templates/js/translated/part.js:965
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1273 templates/js/translated/order.js:2452
+#: templates/js/translated/order.js:1360 templates/js/translated/order.js:2540
+msgid "Duplicate line item"
+msgstr ""
+
+#: templates/js/translated/order.js:1361 templates/js/translated/order.js:2541
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:1274 templates/js/translated/order.js:2456
+#: templates/js/translated/order.js:1362 templates/js/translated/order.js:2545
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1314
+#: templates/js/translated/order.js:1402
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1352
+#: templates/js/translated/order.js:1440
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1439
+#: templates/js/translated/order.js:1527
msgid "Edit shipment"
msgstr ""
-#: templates/js/translated/order.js:1442
+#: templates/js/translated/order.js:1530
msgid "Complete shipment"
msgstr ""
-#: templates/js/translated/order.js:1447
+#: templates/js/translated/order.js:1535
msgid "Delete shipment"
msgstr ""
-#: templates/js/translated/order.js:1467
+#: templates/js/translated/order.js:1555
msgid "Edit Shipment"
msgstr ""
-#: templates/js/translated/order.js:1484
+#: templates/js/translated/order.js:1572
msgid "Delete Shipment"
msgstr ""
-#: templates/js/translated/order.js:1518
+#: templates/js/translated/order.js:1606
msgid "No matching shipments found"
msgstr ""
-#: templates/js/translated/order.js:1528
+#: templates/js/translated/order.js:1616
msgid "Shipment Reference"
msgstr ""
-#: templates/js/translated/order.js:1552
+#: templates/js/translated/order.js:1640
msgid "Not shipped"
msgstr ""
-#: templates/js/translated/order.js:1558
+#: templates/js/translated/order.js:1646
msgid "Tracking"
msgstr ""
-#: templates/js/translated/order.js:1718
+#: templates/js/translated/order.js:1806
msgid "Allocate Stock Items to Sales Order"
msgstr ""
-#: templates/js/translated/order.js:1926
+#: templates/js/translated/order.js:2014
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:2015
+#: templates/js/translated/order.js:2103
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:2032
+#: templates/js/translated/order.js:2120
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:2033
+#: templates/js/translated/order.js:2121
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:2076 templates/js/translated/order.js:2165
-#: templates/js/translated/stock.js:1559
+#: templates/js/translated/order.js:2164 templates/js/translated/order.js:2253
+#: templates/js/translated/stock.js:1515
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/order.js:2084 templates/js/translated/order.js:2174
+#: templates/js/translated/order.js:2172 templates/js/translated/order.js:2262
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:2436
+#: templates/js/translated/order.js:2524
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:2442
+#: templates/js/translated/order.js:2530
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:2449 templates/js/translated/order.js:2616
+#: templates/js/translated/order.js:2537 templates/js/translated/order.js:2727
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:2460
+#: templates/js/translated/order.js:2549
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:2463
+#: templates/js/translated/order.js:2552
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:2522
+#: templates/js/translated/order.js:2633
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:2624
+#: templates/js/translated/order.js:2735
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:2638
+#: templates/js/translated/order.js:2749
msgid "No matching line items"
msgstr ""
@@ -8677,117 +8748,117 @@ msgstr ""
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:481
+#: templates/js/translated/part.js:482
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:509 templates/js/translated/part.js:594
+#: templates/js/translated/part.js:510 templates/js/translated/part.js:595
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:513 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:514 templates/js/translated/part.js:599
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:525
+#: templates/js/translated/part.js:526
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:529
+#: templates/js/translated/part.js:530
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:644
+#: templates/js/translated/part.js:645
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1034
+#: templates/js/translated/part.js:1035
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1058
+#: templates/js/translated/part.js:1059
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1125 templates/js/translated/part.js:1385
+#: templates/js/translated/part.js:1126 templates/js/translated/part.js:1386
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1295
+#: templates/js/translated/part.js:1296
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1318
+#: templates/js/translated/part.js:1319
#: templates/js/translated/table_filters.js:425
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1409 templates/js/translated/part.js:1581
-#: templates/js/translated/stock.js:2572
+#: templates/js/translated/part.js:1410 templates/js/translated/part.js:1582
+#: templates/js/translated/stock.js:2528
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1425
+#: templates/js/translated/part.js:1426
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1600 templates/js/translated/stock.js:2591
+#: templates/js/translated/part.js:1601 templates/js/translated/stock.js:2547
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1664
+#: templates/js/translated/part.js:1665
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1678 templates/js/translated/stock.js:2635
+#: templates/js/translated/part.js:1679 templates/js/translated/stock.js:2591
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1722
+#: templates/js/translated/part.js:1723
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1773 templates/js/translated/stock.js:1270
+#: templates/js/translated/part.js:1774 templates/js/translated/stock.js:1226
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1774 templates/js/translated/stock.js:1271
-#: templates/js/translated/stock.js:1517
+#: templates/js/translated/part.js:1775 templates/js/translated/stock.js:1227
+#: templates/js/translated/stock.js:1473
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1780
+#: templates/js/translated/part.js:1781
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1802
+#: templates/js/translated/part.js:1803
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1816
+#: templates/js/translated/part.js:1817
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1841
+#: templates/js/translated/part.js:1842
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1896
+#: templates/js/translated/part.js:1897
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1897
+#: templates/js/translated/part.js:1898
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1998
+#: templates/js/translated/part.js:1999
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:2017
+#: templates/js/translated/part.js:2018
msgid "Single Price Difference"
msgstr ""
@@ -8861,368 +8932,356 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:102
+#: templates/js/translated/stock.js:101
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:111
+#: templates/js/translated/stock.js:110
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:154
+#: templates/js/translated/stock.js:153
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:194
+#: templates/js/translated/stock.js:193
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:233
+#: templates/js/translated/stock.js:232
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/stock.js:238
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:381
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:395
+#: templates/js/translated/stock.js:394
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:420
+#: templates/js/translated/stock.js:419
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425
+#: templates/js/translated/stock.js:423 templates/js/translated/stock.js:424
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:441
+#: templates/js/translated/stock.js:440
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:461
+#: templates/js/translated/stock.js:460
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:470
+#: templates/js/translated/stock.js:469
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:515
-msgid "Export Stock"
-msgstr ""
-
-#: templates/js/translated/stock.js:526
-msgid "Include Sublocations"
-msgstr ""
-
-#: templates/js/translated/stock.js:527
-msgid "Include stock items in sublocations"
-msgstr ""
-
-#: templates/js/translated/stock.js:636
+#: templates/js/translated/stock.js:592
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:637
+#: templates/js/translated/stock.js:593
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:714
+#: templates/js/translated/stock.js:670
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:715
+#: templates/js/translated/stock.js:671
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:717
+#: templates/js/translated/stock.js:673
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:718
+#: templates/js/translated/stock.js:674
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:804
+#: templates/js/translated/stock.js:760
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:805
+#: templates/js/translated/stock.js:761
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:900
+#: templates/js/translated/stock.js:856
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:901
+#: templates/js/translated/stock.js:857
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:907
+#: templates/js/translated/stock.js:863
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:908
+#: templates/js/translated/stock.js:864
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:912
+#: templates/js/translated/stock.js:868
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:913
+#: templates/js/translated/stock.js:869
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:917
+#: templates/js/translated/stock.js:873
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:918 users/models.py:213
+#: templates/js/translated/stock.js:874 users/models.py:213
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:922
+#: templates/js/translated/stock.js:878
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1011
+#: templates/js/translated/stock.js:967
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1011
+#: templates/js/translated/stock.js:967
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1051
+#: templates/js/translated/stock.js:1007
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1209
+#: templates/js/translated/stock.js:1165
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1211
+#: templates/js/translated/stock.js:1167
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1216
+#: templates/js/translated/stock.js:1172
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1263
+#: templates/js/translated/stock.js:1219
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1266
+#: templates/js/translated/stock.js:1222
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1292
+#: templates/js/translated/stock.js:1248
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1348
+#: templates/js/translated/stock.js:1304
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1500
+#: templates/js/translated/stock.js:1456
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1522
+#: templates/js/translated/stock.js:1478
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1551
+#: templates/js/translated/stock.js:1507
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1511
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1563
+#: templates/js/translated/stock.js:1519
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1569
+#: templates/js/translated/stock.js:1525
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1727
+#: templates/js/translated/stock.js:1683
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1732
+#: templates/js/translated/stock.js:1688
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1691
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1739
+#: templates/js/translated/stock.js:1695
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1741
+#: templates/js/translated/stock.js:1697
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1747
+#: templates/js/translated/stock.js:1703
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1749
+#: templates/js/translated/stock.js:1705
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1751
+#: templates/js/translated/stock.js:1707
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1756
+#: templates/js/translated/stock.js:1712
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1763
+#: templates/js/translated/stock.js:1719
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1765
+#: templates/js/translated/stock.js:1721
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1767
+#: templates/js/translated/stock.js:1723
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1771
+#: templates/js/translated/stock.js:1727
#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1821
+#: templates/js/translated/stock.js:1777
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1903
+#: templates/js/translated/stock.js:1859
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1941
+#: templates/js/translated/stock.js:1897
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1962 templates/js/translated/stock.js:2010
+#: templates/js/translated/stock.js:1918 templates/js/translated/stock.js:1966
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:2050
+#: templates/js/translated/stock.js:2006
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:2077
+#: templates/js/translated/stock.js:2033
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:2079
+#: templates/js/translated/stock.js:2035
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:2278
+#: templates/js/translated/stock.js:2234
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2292
+#: templates/js/translated/stock.js:2248
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2293
+#: templates/js/translated/stock.js:2249
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2472
+#: templates/js/translated/stock.js:2428
msgid "Allocated Quantity"
msgstr ""
-#: templates/js/translated/stock.js:2682
+#: templates/js/translated/stock.js:2638
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2707
+#: templates/js/translated/stock.js:2663
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2726
+#: templates/js/translated/stock.js:2682
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2745
+#: templates/js/translated/stock.js:2701
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2763
+#: templates/js/translated/stock.js:2719
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2786
+#: templates/js/translated/stock.js:2742
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2794
+#: templates/js/translated/stock.js:2750
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2835
+#: templates/js/translated/stock.js:2791
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2836
+#: templates/js/translated/stock.js:2792
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2887
+#: templates/js/translated/stock.js:2843
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2938
+#: templates/js/translated/stock.js:2894
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2974
+#: templates/js/translated/stock.js:2930
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2975
+#: templates/js/translated/stock.js:2931
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2977
+#: templates/js/translated/stock.js:2933
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2978
+#: templates/js/translated/stock.js:2934
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2979
+#: templates/js/translated/stock.js:2935
msgid "The Stock Item is serialized and does not belong to another item"
msgstr ""
-#: templates/js/translated/stock.js:2992
+#: templates/js/translated/stock.js:2948
msgid "Select part to install"
msgstr ""
@@ -9429,60 +9488,68 @@ msgstr ""
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:368
+#: templates/js/translated/tables.js:50
+msgid "Export Table Data"
+msgstr ""
+
+#: templates/js/translated/tables.js:54
+msgid "Select File Format"
+msgstr ""
+
+#: templates/js/translated/tables.js:433
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:371
+#: templates/js/translated/tables.js:436
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:376
+#: templates/js/translated/tables.js:441
msgid "Showing all rows"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:382 templates/search_form.html:6
+#: templates/js/translated/tables.js:447 templates/search_form.html:6
#: templates/search_form.html:7
msgid "Search"
msgstr ""
-#: templates/js/translated/tables.js:385
+#: templates/js/translated/tables.js:450
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:388
+#: templates/js/translated/tables.js:453
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:391
+#: templates/js/translated/tables.js:456
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:394
+#: templates/js/translated/tables.js:459
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:397
+#: templates/js/translated/tables.js:462
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:400
+#: templates/js/translated/tables.js:465
msgid "All"
msgstr ""
@@ -9586,63 +9653,59 @@ msgstr ""
msgid "Email settings not configured"
msgstr ""
-#: templates/stock_table.html:14
-msgid "Export Stock Information"
-msgstr ""
-
-#: templates/stock_table.html:20
+#: templates/stock_table.html:17
msgid "Barcode Actions"
msgstr ""
-#: templates/stock_table.html:36
+#: templates/stock_table.html:33
msgid "Print test reports"
msgstr ""
-#: templates/stock_table.html:43
+#: templates/stock_table.html:40
msgid "Stock Options"
msgstr ""
-#: templates/stock_table.html:48
+#: templates/stock_table.html:45
msgid "Add to selected stock items"
msgstr ""
-#: templates/stock_table.html:49
+#: templates/stock_table.html:46
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:50
+#: templates/stock_table.html:47
msgid "Stocktake selected stock items"
msgstr ""
-#: templates/stock_table.html:51
+#: templates/stock_table.html:48
msgid "Move selected stock items"
msgstr ""
-#: templates/stock_table.html:52
+#: templates/stock_table.html:49
msgid "Merge selected stock items"
msgstr ""
-#: templates/stock_table.html:52
+#: templates/stock_table.html:49
msgid "Merge stock"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:50
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:52
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:52
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:55
msgid "Delete selected items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:55
msgid "Delete stock"
msgstr ""
diff --git a/InvenTree/locale/hu/LC_MESSAGES/django.po b/InvenTree/locale/hu/LC_MESSAGES/django.po
index de0c21db5f..37d19612f9 100644
--- a/InvenTree/locale/hu/LC_MESSAGES/django.po
+++ b/InvenTree/locale/hu/LC_MESSAGES/django.po
@@ -1,10 +1,10 @@
-#: templates/js/translated/order.js:2090
+#: templates/js/translated/order.js:2178
msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-03-01 13:34+0000\n"
-"PO-Revision-Date: 2022-03-01 14:10\n"
+"POT-Creation-Date: 2022-03-07 04:31+0000\n"
+"PO-Revision-Date: 2022-03-07 13:02\n"
"Last-Translator: \n"
"Language-Team: Hungarian\n"
"Language: hu_HU\n"
@@ -86,7 +86,7 @@ msgid "Duplicate serial: {sn}"
msgstr "Duplikált sorozatszám: {sn}"
#: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435
-#: stock/views.py:1101
+#: stock/views.py:983
msgid "Invalid quantity provided"
msgstr "Nem megfelelő mennyiség"
@@ -114,100 +114,100 @@ msgstr "Nem található sorozatszám"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Az egyedi sorozatszámok száma ({s}) meg kell egyezzen a mennyiséggel ({q})"
-#: InvenTree/models.py:176
+#: InvenTree/models.py:185
msgid "Missing file"
msgstr "Hiányzó fájl"
-#: InvenTree/models.py:177
+#: InvenTree/models.py:186
msgid "Missing external link"
msgstr "Hiányzó külső link"
-#: InvenTree/models.py:188 stock/models.py:2071
+#: InvenTree/models.py:197 stock/models.py:2123
#: templates/js/translated/attachment.js:119
msgid "Attachment"
msgstr "Melléklet"
-#: InvenTree/models.py:189
+#: InvenTree/models.py:198
msgid "Select file to attach"
msgstr "Válaszd ki a mellekelni kívánt fájlt"
-#: InvenTree/models.py:195 company/models.py:131 company/models.py:348
+#: InvenTree/models.py:204 company/models.py:131 company/models.py:348
#: company/models.py:564 order/models.py:127 part/models.py:860
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1346
+#: templates/js/translated/company.js:829 templates/js/translated/part.js:1347
msgid "Link"
msgstr "Link"
-#: InvenTree/models.py:196 build/models.py:330 part/models.py:861
-#: stock/models.py:566
+#: InvenTree/models.py:205 build/models.py:332 part/models.py:861
+#: stock/models.py:618
msgid "Link to external URL"
msgstr "Link külső URL-re"
-#: InvenTree/models.py:199 templates/js/translated/attachment.js:163
+#: InvenTree/models.py:208 templates/js/translated/attachment.js:163
msgid "Comment"
msgstr "Megjegyzés"
-#: InvenTree/models.py:199
+#: InvenTree/models.py:208
msgid "File comment"
msgstr "Fájl megjegyzés"
-#: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1277
+#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1277
#: common/models.py:1278 common/models.py:1506 common/models.py:1507
-#: part/models.py:2303 part/models.py:2323
+#: part/models.py:2317 part/models.py:2337
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2817
+#: templates/js/translated/stock.js:2773
msgid "User"
msgstr "Felhasználó"
-#: InvenTree/models.py:209
+#: InvenTree/models.py:218
msgid "upload date"
msgstr "feltöltés dátuma"
-#: InvenTree/models.py:232
+#: InvenTree/models.py:241
msgid "Filename must not be empty"
msgstr "A fájlnév nem lehet üres"
-#: InvenTree/models.py:255
+#: InvenTree/models.py:264
msgid "Invalid attachment directory"
msgstr "Érvénytelen melléklet mappa"
-#: InvenTree/models.py:265
+#: InvenTree/models.py:274
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Fájlnévben érvénytelen karakter van '{c}'"
-#: InvenTree/models.py:268
+#: InvenTree/models.py:277
msgid "Filename missing extension"
msgstr "Fájlnév kiterjesztése hiányzik"
-#: InvenTree/models.py:275
+#: InvenTree/models.py:284
msgid "Attachment with this filename already exists"
msgstr "Ilyen fájlnévvel már létezik melléklet"
-#: InvenTree/models.py:282
+#: InvenTree/models.py:291
msgid "Error renaming file"
msgstr "Hiba a fájl átnevezésekor"
-#: InvenTree/models.py:317
+#: InvenTree/models.py:326
msgid "Invalid choice"
msgstr "Érvénytelen választás"
-#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1492
+#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1492
#: company/models.py:415 label/models.py:112 part/models.py:804
-#: part/models.py:2487 plugin/models.py:40 report/models.py:181
+#: part/models.py:2501 plugin/models.py:40 report/models.py:181
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:48
#: templates/InvenTree/settings/plugin.html:125
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:319
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:567
-#: templates/js/translated/part.js:706 templates/js/translated/part.js:1653
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/company.js:641 templates/js/translated/part.js:568
+#: templates/js/translated/part.js:707 templates/js/translated/part.js:1654
+#: templates/js/translated/stock.js:2573
msgid "Name"
msgstr "Név"
-#: InvenTree/models.py:340 build/models.py:207
+#: InvenTree/models.py:349 build/models.py:209
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
@@ -219,28 +219,28 @@ msgstr "Név"
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:92
#: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:765
-#: templates/js/translated/build.js:1920 templates/js/translated/company.js:345
+#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763
+#: templates/js/translated/build.js:1973 templates/js/translated/company.js:345
#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:911
-#: templates/js/translated/order.js:1105 templates/js/translated/order.js:1366
-#: templates/js/translated/part.js:626 templates/js/translated/part.js:1021
-#: templates/js/translated/part.js:1106 templates/js/translated/part.js:1276
-#: templates/js/translated/part.js:1672 templates/js/translated/part.js:1741
-#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2446
-#: templates/js/translated/stock.js:2629 templates/js/translated/stock.js:2667
+#: templates/js/translated/company.js:840 templates/js/translated/order.js:971
+#: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454
+#: templates/js/translated/part.js:627 templates/js/translated/part.js:1022
+#: templates/js/translated/part.js:1107 templates/js/translated/part.js:1277
+#: templates/js/translated/part.js:1673 templates/js/translated/part.js:1742
+#: templates/js/translated/stock.js:1656 templates/js/translated/stock.js:2402
+#: templates/js/translated/stock.js:2585 templates/js/translated/stock.js:2623
msgid "Description"
msgstr "Leírás"
-#: InvenTree/models.py:341
+#: InvenTree/models.py:350
msgid "Description (optional)"
msgstr "Leírás (opcionális)"
-#: InvenTree/models.py:349
+#: InvenTree/models.py:358
msgid "parent"
msgstr "szülő"
-#: InvenTree/serializers.py:65 part/models.py:2805
+#: InvenTree/serializers.py:65 part/models.py:2820
msgid "Must be a valid number"
msgstr "Érvényes számnak kell lennie"
@@ -294,87 +294,87 @@ msgstr "Szükséges oszlop hiányzik: '{name}'"
msgid "Duplicate column: '{col}'"
msgstr "Duplikált oszlop: '{col}'"
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:665
msgid "German"
msgstr "Német"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:666
msgid "Greek"
msgstr "Görög"
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:667
msgid "English"
msgstr "Angol"
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:668
msgid "Spanish"
msgstr "Spanyol"
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:669
msgid "Spanish (Mexican)"
msgstr "Spanyol (Mexikói)"
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:670
msgid "French"
msgstr "Francia"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:671
msgid "Hebrew"
msgstr "Héber"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:672
msgid "Hungarian"
msgstr "Magyar"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:673
msgid "Italian"
msgstr "Olasz"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:674
msgid "Japanese"
msgstr "Japán"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:675
msgid "Korean"
msgstr "Koreai"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:676
msgid "Dutch"
msgstr "Holland"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:677
msgid "Norwegian"
msgstr "Norvég"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:678
msgid "Polish"
msgstr "Lengyel"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:679
msgid "Portugese"
msgstr "Portugál"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:680
msgid "Russian"
msgstr "Orosz"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:681
msgid "Swedish"
msgstr "Svéd"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:682
msgid "Thai"
msgstr "Tháj"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:683
msgid "Turkish"
msgstr "Török"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:684
msgid "Vietnamese"
msgstr "Vietnámi"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:685
msgid "Chinese"
msgstr "Kínai"
@@ -421,7 +421,7 @@ msgid "Returned"
msgstr "Visszaküldve"
#: InvenTree/status_codes.py:143 order/models.py:997
-#: templates/js/translated/order.js:2097 templates/js/translated/order.js:2394
+#: templates/js/translated/order.js:2185 templates/js/translated/order.js:2482
msgid "Shipped"
msgstr "Kiszállítva"
@@ -501,7 +501,7 @@ msgstr "Szülő tételből szétválasztva"
msgid "Split child item"
msgstr "Szétválasztott gyermek tétel"
-#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2204
+#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2160
msgid "Merged stock items"
msgstr "Összevont készlet tétel"
@@ -593,43 +593,43 @@ msgstr "A jelszavaknak egyeznie kell"
msgid "System Information"
msgstr "Rendszerinformáció"
-#: barcodes/api.py:54 barcodes/api.py:152
+#: barcodes/api.py:55 barcodes/api.py:156
msgid "Must provide barcode_data parameter"
msgstr "Meg kell adni a barcode_data paramétert"
-#: barcodes/api.py:128
+#: barcodes/api.py:132
msgid "No match found for barcode data"
msgstr "Nincs egyező vonalkód"
-#: barcodes/api.py:130
+#: barcodes/api.py:134
msgid "Match found for barcode data"
msgstr "Egyezés vonalkódra"
-#: barcodes/api.py:155
+#: barcodes/api.py:159
msgid "Must provide stockitem parameter"
msgstr "Meg kell adni a stockitem paramétert"
-#: barcodes/api.py:162
+#: barcodes/api.py:166
msgid "No matching stock item found"
msgstr "Nincs egyező készlet"
-#: barcodes/api.py:193
+#: barcodes/api.py:197
msgid "Barcode already matches Stock Item"
msgstr "Vonalkód már egyezik a készlet tétellel"
-#: barcodes/api.py:197
+#: barcodes/api.py:201
msgid "Barcode already matches Stock Location"
msgstr "Vonalkód már egyezik a készlet hellyel"
-#: barcodes/api.py:201
+#: barcodes/api.py:205
msgid "Barcode already matches Part"
msgstr "Vonalkód már egyezik az alkatrésszel"
-#: barcodes/api.py:207 barcodes/api.py:219
+#: barcodes/api.py:211 barcodes/api.py:223
msgid "Barcode hash already matches Stock Item"
msgstr "Vonalkód hash már egyezik a készlet tétellel"
-#: barcodes/api.py:225
+#: barcodes/api.py:229
msgid "Barcode associated with Stock Item"
msgstr "Készlet tételhez tartozó vonalkód"
@@ -641,18 +641,18 @@ msgstr "Megszakítás megerősítése"
msgid "Confirm build cancellation"
msgstr "Gyártás megszakításának megerősítése"
-#: build/models.py:133
+#: build/models.py:135
msgid "Invalid choice for parent build"
msgstr "Hibás választás a szülő gyártásra"
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:139 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:676 templates/js/translated/stock.js:2422
+#: templates/js/translated/build.js:677 templates/js/translated/stock.js:2378
msgid "Build Order"
msgstr "Gyártási utasítás"
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:140 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:92
#: order/templates/order/so_sidebar.html:13
@@ -662,41 +662,41 @@ msgstr "Gyártási utasítás"
msgid "Build Orders"
msgstr "Gyártási utasítások"
-#: build/models.py:198
+#: build/models.py:200
msgid "Build Order Reference"
msgstr "Gyártási utasítás azonosító"
-#: build/models.py:199 order/models.py:213 order/models.py:563
-#: order/models.py:843 part/models.py:2716
+#: build/models.py:201 order/models.py:213 order/models.py:563
+#: order/models.py:843 part/models.py:2731
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:772 templates/js/translated/build.js:1401
-#: templates/js/translated/order.js:1136 templates/js/translated/order.js:2261
+#: templates/js/translated/bom.js:770 templates/js/translated/build.js:1402
+#: templates/js/translated/order.js:1223 templates/js/translated/order.js:2349
msgid "Reference"
msgstr "Azonosító"
-#: build/models.py:210
+#: build/models.py:212
msgid "Brief description of the build"
msgstr "Gyártás rövid leírása"
-#: build/models.py:219 build/templates/build/build_base.html:169
+#: build/models.py:221 build/templates/build/build_base.html:169
#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr "Szülő gyártás"
-#: build/models.py:220
+#: build/models.py:222
msgid "BuildOrder to which this build is allocated"
msgstr "Gyártás, amihez ez a gyártás hozzá van rendelve"
-#: build/models.py:225 build/templates/build/build_base.html:77
+#: build/models.py:227 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
#: order/models.py:912 order/models.py:986
#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359
-#: part/models.py:2249 part/models.py:2265 part/models.py:2284
-#: part/models.py:2301 part/models.py:2403 part/models.py:2525
-#: part/models.py:2615 part/models.py:2691 part/models.py:2998
-#: part/serializers.py:666 part/templates/part/part_app_base.html:8
+#: part/models.py:2263 part/models.py:2279 part/models.py:2298
+#: part/models.py:2315 part/models.py:2417 part/models.py:2539
+#: part/models.py:2629 part/models.py:2706 part/models.py:3013
+#: part/serializers.py:669 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: part/templates/part/upload_bom.html:52
@@ -707,231 +707,231 @@ msgstr "Gyártás, amihez ez a gyártás hozzá van rendelve"
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551
-#: templates/js/translated/bom.js:730 templates/js/translated/build.js:902
-#: templates/js/translated/build.js:1270 templates/js/translated/build.js:1655
-#: templates/js/translated/build.js:1925 templates/js/translated/company.js:492
+#: templates/js/translated/bom.js:728 templates/js/translated/build.js:903
+#: templates/js/translated/build.js:1271 templates/js/translated/build.js:1666
+#: templates/js/translated/build.js:1978 templates/js/translated/company.js:492
#: templates/js/translated/company.js:749 templates/js/translated/order.js:84
-#: templates/js/translated/order.js:651 templates/js/translated/order.js:1090
-#: templates/js/translated/order.js:1693 templates/js/translated/order.js:2050
-#: templates/js/translated/order.js:2245 templates/js/translated/part.js:1006
-#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1254
-#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1657
-#: templates/js/translated/stock.js:2892 templates/js/translated/stock.js:2991
+#: templates/js/translated/order.js:711 templates/js/translated/order.js:1177
+#: templates/js/translated/order.js:1781 templates/js/translated/order.js:2138
+#: templates/js/translated/order.js:2333 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1088 templates/js/translated/part.js:1255
+#: templates/js/translated/stock.js:518 templates/js/translated/stock.js:683
+#: templates/js/translated/stock.js:890 templates/js/translated/stock.js:1613
+#: templates/js/translated/stock.js:2848 templates/js/translated/stock.js:2947
msgid "Part"
msgstr "Alkatrész"
-#: build/models.py:233
+#: build/models.py:235
msgid "Select part to build"
msgstr "Válassz alkatrészt a gyártáshoz"
-#: build/models.py:238
+#: build/models.py:240
msgid "Sales Order Reference"
msgstr "Vevői rendelés azonosító"
-#: build/models.py:242
+#: build/models.py:244
msgid "SalesOrder to which this build is allocated"
msgstr "Vevői rendelés amihez ez a gyártás hozzá van rendelve"
-#: build/models.py:247 templates/js/translated/build.js:1643
-#: templates/js/translated/order.js:1681
+#: build/models.py:249 build/serializers.py:729
+#: templates/js/translated/build.js:1654 templates/js/translated/order.js:1769
msgid "Source Location"
msgstr "Forrás hely"
-#: build/models.py:251
+#: build/models.py:253
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr "Válassz helyet ahonnan készletet vegyünk el ehhez a gyártáshoz (hagyd üresen ha bárhonnan)"
-#: build/models.py:256
+#: build/models.py:258
msgid "Destination Location"
msgstr "Cél hely"
-#: build/models.py:260
+#: build/models.py:262
msgid "Select location where the completed items will be stored"
msgstr "Válassz helyet ahol a kész tételek tárolva lesznek"
-#: build/models.py:264
+#: build/models.py:266
msgid "Build Quantity"
msgstr "Gyártási mennyiség"
-#: build/models.py:267
+#: build/models.py:269
msgid "Number of stock items to build"
msgstr "Gyártandó készlet tételek száma"
-#: build/models.py:271
+#: build/models.py:273
msgid "Completed items"
msgstr "Kész tételek"
-#: build/models.py:273
+#: build/models.py:275
msgid "Number of stock items which have been completed"
msgstr "Elkészült készlet tételek száma"
-#: build/models.py:277 part/templates/part/part_base.html:234
+#: build/models.py:279 part/templates/part/part_base.html:234
msgid "Build Status"
msgstr "Gyártási állapot"
-#: build/models.py:281
+#: build/models.py:283
msgid "Build status code"
msgstr "Gyártás státusz kód"
-#: build/models.py:285 build/serializers.py:218 order/serializers.py:272
-#: stock/models.py:570 templates/js/translated/order.js:513
+#: build/models.py:287 build/serializers.py:218 order/serializers.py:272
+#: stock/models.py:622 templates/js/translated/order.js:573
msgid "Batch Code"
msgstr "Batch kód"
-#: build/models.py:289 build/serializers.py:219
+#: build/models.py:291 build/serializers.py:219
msgid "Batch code for this build output"
msgstr "Batch kód a gyártás kimenetéhez"
-#: build/models.py:292 order/models.py:129 part/models.py:999
-#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1379
+#: build/models.py:294 order/models.py:129 part/models.py:999
+#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1467
msgid "Creation Date"
msgstr "Létrehozás dátuma"
-#: build/models.py:296 order/models.py:585
+#: build/models.py:298 order/models.py:585
msgid "Target completion date"
msgstr "Befejezés cél dátuma"
-#: build/models.py:297
+#: build/models.py:299
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Cél dátum a gyártás befejezéséhez. Ez után késettnek számít majd."
-#: build/models.py:300 order/models.py:255
-#: templates/js/translated/build.js:2002
+#: build/models.py:302 order/models.py:255
+#: templates/js/translated/build.js:2055
msgid "Completion Date"
msgstr "Elkészítés dátuma"
-#: build/models.py:306
+#: build/models.py:308
msgid "completed by"
msgstr "elkészítette"
-#: build/models.py:314 templates/js/translated/build.js:1970
+#: build/models.py:316 templates/js/translated/build.js:2023
msgid "Issued by"
msgstr "Kiállította"
-#: build/models.py:315
+#: build/models.py:317
msgid "User who issued this build order"
msgstr "Felhasználó aki ezt a gyártási utasítást kiállította"
-#: build/models.py:323 build/templates/build/build_base.html:190
+#: build/models.py:325 build/templates/build/build_base.html:190
#: build/templates/build/detail.html:116 order/models.py:143
#: order/templates/order/order_base.html:170
#: order/templates/order/sales_order_base.html:182 part/models.py:1003
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1982 templates/js/translated/order.js:945
+#: templates/js/translated/build.js:2035 templates/js/translated/order.js:1005
msgid "Responsible"
msgstr "Felelős"
-#: build/models.py:324
+#: build/models.py:326
msgid "User responsible for this build order"
msgstr "Felhasználó aki felelős ezért a gyártási utasításért"
-#: build/models.py:329 build/templates/build/detail.html:102
+#: build/models.py:331 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:564
+#: part/templates/part/part_base.html:354 stock/models.py:616
#: stock/templates/stock/item_base.html:352
msgid "External Link"
msgstr "Külső link"
-#: build/models.py:334 build/serializers.py:381
+#: build/models.py:336 build/serializers.py:381
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
#: order/models.py:147 order/models.py:845 order/models.py:1107
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/models.py:988
-#: part/templates/part/detail.html:146 part/templates/part/part_sidebar.html:57
+#: part/templates/part/detail.html:141 part/templates/part/part_sidebar.html:57
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:137 stock/forms.py:171 stock/models.py:636
-#: stock/models.py:1971 stock/models.py:2077 stock/serializers.py:332
+#: stock/forms.py:137 stock/forms.py:171 stock/models.py:688
+#: stock/models.py:2023 stock/models.py:2129 stock/serializers.py:332
#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:936
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1257
-#: templates/js/translated/order.js:1562 templates/js/translated/order.js:2419
-#: templates/js/translated/stock.js:1344 templates/js/translated/stock.js:1935
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934
+#: templates/js/translated/company.js:845 templates/js/translated/order.js:1344
+#: templates/js/translated/order.js:1650 templates/js/translated/order.js:2507
+#: templates/js/translated/stock.js:1300 templates/js/translated/stock.js:1891
msgid "Notes"
msgstr "Megjegyzések"
-#: build/models.py:335
+#: build/models.py:337
msgid "Extra build notes"
msgstr "Extra gyártási megjegyzések"
-#: build/models.py:748
+#: build/models.py:750
msgid "No build output specified"
msgstr "Nincs gyártási kimenet megadva"
-#: build/models.py:751
+#: build/models.py:753
msgid "Build output is already completed"
msgstr "Gyártási kimenet már kész"
-#: build/models.py:754
+#: build/models.py:756
msgid "Build output does not match Build Order"
msgstr "Gyártási kimenet nem egyezik a gyártási utasítással"
-#: build/models.py:1060
+#: build/models.py:1162
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "Gyártási tételnek meg kell adnia a gyártási kimenetet, mivel a fő darab egyedi követésre kötelezett"
-#: build/models.py:1069
+#: build/models.py:1171
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr "Lefoglalt mennyiség ({q}) nem lépheti túl a készletet ({a})"
-#: build/models.py:1079
+#: build/models.py:1181
msgid "Stock item is over-allocated"
msgstr "Készlet túlfoglalva"
-#: build/models.py:1085 order/models.py:1225
+#: build/models.py:1187 order/models.py:1225
msgid "Allocation quantity must be greater than zero"
msgstr "Lefoglalt mennyiségnek nullánál többnek kell lennie"
-#: build/models.py:1091
+#: build/models.py:1193
msgid "Quantity must be 1 for serialized stock"
msgstr "Egyedi követésre kötelezett tételeknél a menyiség 1 kell legyen"
-#: build/models.py:1148
+#: build/models.py:1250
msgid "Selected stock item not found in BOM"
msgstr "Kiválasztott készlet tétel nem található az alkatrészjegyzékben"
-#: build/models.py:1217 stock/templates/stock/item_base.html:324
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898
+#: build/models.py:1319 stock/templates/stock/item_base.html:324
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1951
#: templates/navbar.html:35
msgid "Build"
msgstr "Gyártás"
-#: build/models.py:1218
+#: build/models.py:1320
msgid "Build to allocate parts"
msgstr "Gyártás amihez készletet foglaljunk"
-#: build/models.py:1234 build/serializers.py:576 order/serializers.py:783
+#: build/models.py:1336 build/serializers.py:576 order/serializers.py:783
#: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635
#: stock/serializers.py:753 stock/templates/stock/item_base.html:9
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:346
-#: templates/js/translated/build.js:687 templates/js/translated/build.js:692
-#: templates/js/translated/build.js:1657 templates/js/translated/build.js:2050
-#: templates/js/translated/order.js:85 templates/js/translated/order.js:1694
-#: templates/js/translated/order.js:1949 templates/js/translated/order.js:1954
-#: templates/js/translated/order.js:2057 templates/js/translated/order.js:2147
-#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728
-#: templates/js/translated/stock.js:2753
+#: templates/js/translated/build.js:688 templates/js/translated/build.js:693
+#: templates/js/translated/build.js:1668 templates/js/translated/build.js:2103
+#: templates/js/translated/order.js:85 templates/js/translated/order.js:1782
+#: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:2235
+#: templates/js/translated/stock.js:519 templates/js/translated/stock.js:684
+#: templates/js/translated/stock.js:2709
msgid "Stock Item"
msgstr "Készlet tétel"
-#: build/models.py:1235
+#: build/models.py:1337
msgid "Source stock item"
msgstr "Forrás készlet tétel"
-#: build/models.py:1247 build/serializers.py:188
+#: build/models.py:1349 build/serializers.py:188
#: build/templates/build/build_base.html:82
#: build/templates/build/detail.html:35 common/models.py:1317
#: company/forms.py:42 company/templates/company/supplier_part.html:251
#: order/models.py:836 order/models.py:1265 order/serializers.py:903
#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144
-#: part/forms.py:160 part/forms.py:176 part/models.py:2707
-#: part/templates/part/detail.html:1008 part/templates/part/detail.html:1094
+#: part/forms.py:160 part/forms.py:176 part/models.py:2722
+#: part/templates/part/detail.html:994 part/templates/part/detail.html:1080
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_build_order_base.html:114
@@ -943,32 +943,32 @@ msgstr "Forrás készlet tétel"
#: stock/templates/stock/item_base.html:176
#: stock/templates/stock/item_base.html:241
#: stock/templates/stock/item_base.html:249
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:780
-#: templates/js/translated/build.js:375 templates/js/translated/build.js:523
-#: templates/js/translated/build.js:714 templates/js/translated/build.js:911
-#: templates/js/translated/build.js:921 templates/js/translated/build.js:1297
-#: templates/js/translated/build.js:1658
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778
+#: templates/js/translated/build.js:376 templates/js/translated/build.js:524
+#: templates/js/translated/build.js:715 templates/js/translated/build.js:912
+#: templates/js/translated/build.js:922 templates/js/translated/build.js:1298
+#: templates/js/translated/build.js:1669
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:101 templates/js/translated/order.js:1142
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:1976
-#: templates/js/translated/order.js:2064 templates/js/translated/order.js:2153
-#: templates/js/translated/order.js:2267 templates/js/translated/part.js:906
-#: templates/js/translated/part.js:1884 templates/js/translated/part.js:2007
-#: templates/js/translated/part.js:2085 templates/js/translated/stock.js:391
-#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758
-#: templates/js/translated/stock.js:2802 templates/js/translated/stock.js:2904
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:1229
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:2064
+#: templates/js/translated/order.js:2152 templates/js/translated/order.js:2241
+#: templates/js/translated/order.js:2355 templates/js/translated/part.js:907
+#: templates/js/translated/part.js:1885 templates/js/translated/part.js:2008
+#: templates/js/translated/part.js:2086 templates/js/translated/stock.js:390
+#: templates/js/translated/stock.js:544 templates/js/translated/stock.js:714
+#: templates/js/translated/stock.js:2758 templates/js/translated/stock.js:2860
msgid "Quantity"
msgstr "Mennyiség"
-#: build/models.py:1248
+#: build/models.py:1350
msgid "Stock quantity to allocate to build"
msgstr "Készlet mennyiség amit foglaljunk a gyártáshoz"
-#: build/models.py:1256
+#: build/models.py:1358
msgid "Install into"
msgstr "Beépítés ebbe"
-#: build/models.py:1257
+#: build/models.py:1359
msgid "Destination stock item"
msgstr "Cél készlet tétel"
@@ -997,8 +997,8 @@ msgid "Enter quantity for build output"
msgstr "Add meg a mennyiséget a gyártás kimenetéhez"
#: build/serializers.py:201 build/serializers.py:596 order/models.py:280
-#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:826
-#: stock/models.py:404 stock/models.py:1180 stock/serializers.py:305
+#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:836
+#: stock/models.py:456 stock/models.py:1232 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr "Mennyiségnek nullánál többnek kell lennie"
@@ -1012,8 +1012,8 @@ msgstr "Egész számú mennyiség szükséges, mivel az alkatrészjegyzék egyed
#: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907
#: stock/forms.py:78 stock/serializers.py:314
-#: templates/js/translated/order.js:524 templates/js/translated/stock.js:238
-#: templates/js/translated/stock.js:392
+#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237
+#: templates/js/translated/stock.js:391
msgid "Serial Numbers"
msgstr "Sorozatszámok"
@@ -1029,7 +1029,7 @@ msgstr "Sorozatszámok automatikus hozzárendelése"
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Szükséges tételek automatikus hozzárendelése a megfelelő sorozatszámokkal"
-#: build/serializers.py:275 stock/api.py:549
+#: build/serializers.py:275 stock/api.py:551
msgid "The following serial numbers already exist"
msgstr "A következő sorozatszámok már léteznek"
@@ -1041,13 +1041,13 @@ msgstr "A gyártási kimenetek listáját meg kell adni"
#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788
#: stock/serializers.py:1029 stock/templates/stock/item_base.html:292
#: templates/js/translated/barcode.js:384
-#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:699
-#: templates/js/translated/build.js:1309 templates/js/translated/order.js:551
-#: templates/js/translated/order.js:1961 templates/js/translated/order.js:2072
-#: templates/js/translated/order.js:2080 templates/js/translated/order.js:2161
-#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564
-#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936
-#: templates/js/translated/stock.js:1807 templates/js/translated/stock.js:2694
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700
+#: templates/js/translated/build.js:1310 templates/js/translated/order.js:611
+#: templates/js/translated/order.js:2049 templates/js/translated/order.js:2160
+#: templates/js/translated/order.js:2168 templates/js/translated/order.js:2249
+#: templates/js/translated/part.js:179 templates/js/translated/stock.js:520
+#: templates/js/translated/stock.js:685 templates/js/translated/stock.js:892
+#: templates/js/translated/stock.js:1763 templates/js/translated/stock.js:2650
msgid "Location"
msgstr "Hely"
@@ -1058,10 +1058,10 @@ msgstr "A kész gyártási kimenetek helye"
#: build/serializers.py:377 build/templates/build/build_base.html:142
#: build/templates/build/detail.html:63 order/models.py:579
#: order/serializers.py:290 stock/templates/stock/item_base.html:182
-#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1954
-#: templates/js/translated/order.js:656 templates/js/translated/order.js:915
-#: templates/js/translated/order.js:1371 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2771 templates/js/translated/stock.js:2920
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2007
+#: templates/js/translated/order.js:716 templates/js/translated/order.js:975
+#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2727 templates/js/translated/stock.js:2876
msgid "Status"
msgstr "Állapot"
@@ -1073,7 +1073,7 @@ msgstr "Kiosztatlanok elfogadása"
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr "Fogadd el hogy a készlet tételek nincsenek teljesen lefoglalva ehhez a gyártási utastáshoz"
-#: build/serializers.py:445 templates/js/translated/build.js:150
+#: build/serializers.py:445 templates/js/translated/build.js:151
msgid "Required stock has not been fully allocated"
msgstr "A szükséges készlet nem lett teljesen lefoglalva"
@@ -1085,7 +1085,7 @@ msgstr "Befejezetlenek elfogadása"
msgid "Accept that the required number of build outputs have not been completed"
msgstr "Fogadd el hogy a szükséges számú gyártási kimenet nem lett elérve"
-#: build/serializers.py:461 templates/js/translated/build.js:154
+#: build/serializers.py:461 templates/js/translated/build.js:155
msgid "Required build quantity has not been completed"
msgstr "Szükséges gyártási mennyiség nem lett elérve"
@@ -1097,8 +1097,8 @@ msgstr "A gyártási utasítás befejezetlen kimeneteket tartalmaz"
msgid "No build outputs have been created for this build order"
msgstr "Ehhez a gyártási utasításhoz nem készült kimenet"
-#: build/serializers.py:501 build/serializers.py:550 part/models.py:2831
-#: part/models.py:2990
+#: build/serializers.py:501 build/serializers.py:550 part/models.py:2846
+#: part/models.py:3005
msgid "BOM Item"
msgstr "Alkatrészjegyzék tétel"
@@ -1135,6 +1135,26 @@ msgstr "Gyártási kimenetet nem lehet megadni a követésre kötelezett alkatr
msgid "Allocation items must be provided"
msgstr "A lefoglalandó tételeket meg kell adni"
+#: build/serializers.py:730
+msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
+msgstr "Készlet hely ahonnan az alkatrészek származnak (hagyd üresen ha bárhonnan)"
+
+#: build/serializers.py:735
+msgid "Interchangeable Stock"
+msgstr "Felcserélhető készlet"
+
+#: build/serializers.py:736
+msgid "Stock items in multiple locations can be used interchangeably"
+msgstr "A különböző helyeken lévő készlet egyenrangúan felhasználható"
+
+#: build/serializers.py:741
+msgid "Substitute Stock"
+msgstr "Készlet helyettesítés"
+
+#: build/serializers.py:742
+msgid "Allow allocation of substitute parts"
+msgstr "Helyettesítő alkatrészek foglalásának engedélyezése"
+
#: build/tasks.py:98
msgid "Stock required for build order"
msgstr "A gyártási utasításhoz készlet szükséges"
@@ -1206,9 +1226,9 @@ msgstr "A készlet nem lett teljesen lefoglalva ehhez a gyártási utasításhoz
#: order/templates/order/order_base.html:156
#: order/templates/order/sales_order_base.html:163
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1994 templates/js/translated/order.js:932
-#: templates/js/translated/order.js:1204 templates/js/translated/order.js:1387
-#: templates/js/translated/order.js:2330 templates/js/translated/part.js:910
+#: templates/js/translated/build.js:2047 templates/js/translated/order.js:992
+#: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475
+#: templates/js/translated/order.js:2418 templates/js/translated/part.js:911
msgid "Target Date"
msgstr "Cél dátum"
@@ -1230,7 +1250,7 @@ msgstr "Megkésett"
#: build/templates/build/build_base.html:163
#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
#: order/templates/order/sales_order_base.html:170
-#: templates/js/translated/build.js:1940
+#: templates/js/translated/build.js:1993
#: templates/js/translated/table_filters.js:365
msgid "Completed"
msgstr "Kész"
@@ -1242,7 +1262,7 @@ msgstr "Kész"
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:286
-#: templates/js/translated/order.js:1326 templates/js/translated/stock.js:2436
+#: templates/js/translated/order.js:1414 templates/js/translated/stock.js:2392
msgid "Sales Order"
msgstr "Vevői rendelés"
@@ -1277,7 +1297,7 @@ msgid "Stock can be taken from any available location."
msgstr "Készlet bármely rendelkezésre álló helyről felhasználható."
#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133
-#: templates/js/translated/order.js:657 templates/js/translated/order.js:1246
+#: templates/js/translated/order.js:717 templates/js/translated/order.js:1333
msgid "Destination"
msgstr "Cél"
@@ -1285,13 +1305,13 @@ msgstr "Cél"
msgid "Destination location not specified"
msgstr "A cél hely nincs megadva"
-#: build/templates/build/detail.html:74 templates/js/translated/build.js:929
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:930
msgid "Allocated Parts"
msgstr "Lefoglalt alkatrészek"
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:310
-#: templates/js/translated/stock.js:1796 templates/js/translated/stock.js:2927
+#: templates/js/translated/stock.js:1752 templates/js/translated/stock.js:2883
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:238
msgid "Batch"
@@ -1300,7 +1320,7 @@ msgstr "Batch"
#: build/templates/build/detail.html:127
#: order/templates/order/order_base.html:143
#: order/templates/order/sales_order_base.html:157
-#: templates/js/translated/build.js:1962
+#: templates/js/translated/build.js:2015
msgid "Created"
msgstr "Létrehozva"
@@ -1320,7 +1340,7 @@ msgstr "Alárendelt gyártások"
msgid "Allocate Stock to Build"
msgstr "Készlet foglalása gyártáshoz"
-#: build/templates/build/detail.html:177 templates/js/translated/build.js:1484
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1485
msgid "Unallocate stock"
msgstr "Készlet felszabadítása"
@@ -1329,111 +1349,119 @@ msgid "Unallocate Stock"
msgstr "Készlet felszabadítása"
#: build/templates/build/detail.html:180
-msgid "Allocate stock to build"
-msgstr "Készlet foglalása gyártáshoz"
+msgid "Automatically allocate stock to build"
+msgstr "Automatikus készlet foglalás a gyártáshoz"
-#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
+#: build/templates/build/detail.html:181
+msgid "Auto Allocate"
+msgstr "Automata foglalás"
+
+#: build/templates/build/detail.html:183
+msgid "Manually allocate stock to build"
+msgstr "Manuális készlet foglalás a gyártáshoz"
+
+#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8
msgid "Allocate Stock"
msgstr "Készlet foglalása"
-#: build/templates/build/detail.html:184
+#: build/templates/build/detail.html:187
msgid "Order required parts"
msgstr "Szükséges alkatrészek rendelése"
-#: build/templates/build/detail.html:185
+#: build/templates/build/detail.html:188
#: company/templates/company/detail.html:38
#: company/templates/company/detail.html:85 order/views.py:463
-#: part/templates/part/category.html:177
+#: part/templates/part/category.html:174
msgid "Order Parts"
msgstr "Alkatrész rendelés"
-#: build/templates/build/detail.html:197
+#: build/templates/build/detail.html:200
msgid "Untracked stock has been fully allocated for this Build Order"
msgstr "Nem követett készlet teljesen lefoglalva ehhez a gyártási utasításhoz"
-#: build/templates/build/detail.html:201
+#: build/templates/build/detail.html:204
msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr "Nem követett készlet nincs teljesen lefoglalva ehhez a gyártási utasításhoz"
-#: build/templates/build/detail.html:208
+#: build/templates/build/detail.html:211
msgid "Allocate selected items"
msgstr "Kiválasztott tételek lefoglalása"
-#: build/templates/build/detail.html:218
+#: build/templates/build/detail.html:221
msgid "This Build Order does not have any associated untracked BOM items"
msgstr "Ez a gyártási utasítás egyáltalán nem tartalmaz nem követett alkatrészjegyzék tételt"
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:230
msgid "Incomplete Build Outputs"
msgstr "Befejezetlen gyártási kimenetek"
-#: build/templates/build/detail.html:231
+#: build/templates/build/detail.html:234
msgid "Create new build output"
msgstr "Új gyártási kimenet létrehozása"
-#: build/templates/build/detail.html:232
+#: build/templates/build/detail.html:235
msgid "New Build Output"
msgstr "Új gyártási kimenet"
-#: build/templates/build/detail.html:246
+#: build/templates/build/detail.html:249
msgid "Output Actions"
msgstr "Kimeneti műveletek"
-#: build/templates/build/detail.html:250
+#: build/templates/build/detail.html:253
msgid "Complete selected build outputs"
msgstr "Kiválasztott gyártási kimenetek befejezése"
-#: build/templates/build/detail.html:251
+#: build/templates/build/detail.html:254
msgid "Complete outputs"
msgstr "Befejezett kimenetek"
-#: build/templates/build/detail.html:253
+#: build/templates/build/detail.html:256
msgid "Delete selected build outputs"
msgstr "Kiválasztott gyártási kimenetek törlése"
-#: build/templates/build/detail.html:254
+#: build/templates/build/detail.html:257
msgid "Delete outputs"
msgstr "Kimenetek törlése"
-#: build/templates/build/detail.html:270
+#: build/templates/build/detail.html:273
msgid "Completed Build Outputs"
msgstr "Befejezett gyártási kimenetek"
-#: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19
+#: build/templates/build/detail.html:285 build/templates/build/sidebar.html:19
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:107
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:222
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217
#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:105
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr "Mellékletek"
-#: build/templates/build/detail.html:298
+#: build/templates/build/detail.html:301
msgid "Build Notes"
msgstr "Gyártási megjegyzések"
-#: build/templates/build/detail.html:302 build/templates/build/detail.html:478
-#: company/templates/company/detail.html:188
-#: company/templates/company/detail.html:215
+#: build/templates/build/detail.html:305 build/templates/build/detail.html:481
+#: company/templates/company/detail.html:190
+#: company/templates/company/detail.html:217
#: order/templates/order/purchase_order_detail.html:80
#: order/templates/order/purchase_order_detail.html:108
#: order/templates/order/sales_order_detail.html:127
#: order/templates/order/sales_order_detail.html:186
-#: part/templates/part/detail.html:150 stock/templates/stock/item.html:125
+#: part/templates/part/detail.html:145 stock/templates/stock/item.html:125
#: stock/templates/stock/item.html:223
msgid "Edit Notes"
msgstr "Megjegyzések szerkesztése"
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:519
msgid "Allocation Complete"
msgstr "Lefoglalás kész"
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:520
msgid "All untracked stock items have been allocated"
msgstr "Az összes nem követett készlet lefoglalásra került"
-#: build/templates/build/index.html:18 part/templates/part/detail.html:329
+#: build/templates/build/index.html:18 part/templates/part/detail.html:322
msgid "New Build Order"
msgstr "Új gyártási utasítás"
@@ -1658,7 +1686,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:732 part/models.py:2527 report/models.py:187
+#: common/models.py:732 part/models.py:2541 report/models.py:187
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:417
msgid "Template"
@@ -1668,7 +1696,7 @@ msgstr "Sablon"
msgid "Parts are templates by default"
msgstr "Alkatrészek alapból sablon alkatrészek legyenek"
-#: common/models.py:739 part/models.py:951 templates/js/translated/bom.js:1300
+#: common/models.py:739 part/models.py:951 templates/js/translated/bom.js:1305
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:429
msgid "Assembly"
@@ -2243,7 +2271,7 @@ msgstr "Árlépcső mennyiség"
#: common/models.py:1325 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:937 templates/js/translated/part.js:1889
+#: templates/js/translated/part.js:938 templates/js/translated/part.js:1890
msgid "Price"
msgstr "Ár"
@@ -2337,14 +2365,14 @@ msgstr "Befejeződött a munka ezzel az üzenettel?"
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
-#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:210
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208
#: templates/patterns/wizard/upload.html:35
msgid "Upload File"
msgstr "Fájl feltöltése"
#: common/views.py:94 order/views.py:244
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:211
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:209
#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr "Mezők egyeztetése"
@@ -2472,7 +2500,7 @@ msgstr "Pénznem"
msgid "Default currency used for this company"
msgstr "Cég által használt alapértelmezett pénznem"
-#: company/models.py:320 company/models.py:535 stock/models.py:508
+#: company/models.py:320 company/models.py:535 stock/models.py:560
#: stock/templates/stock/item_base.html:137 templates/js/translated/bom.js:541
msgid "Base Part"
msgstr "Kiindulási alkatrész"
@@ -2499,8 +2527,8 @@ msgstr "Gyártó kiválasztása"
#: company/models.py:342 company/templates/company/manufacturer_part.html:96
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1124
-#: templates/js/translated/part.js:245 templates/js/translated/part.js:895
+#: templates/js/translated/company.js:818 templates/js/translated/order.js:1211
+#: templates/js/translated/part.js:245 templates/js/translated/part.js:896
msgid "MPN"
msgstr "MPN"
@@ -2529,8 +2557,8 @@ msgstr "Paraméter neve"
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2064 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1331
+#: stock/models.py:2116 templates/js/translated/company.js:647
+#: templates/js/translated/part.js:716 templates/js/translated/stock.js:1287
msgid "Value"
msgstr "Érték"
@@ -2538,10 +2566,10 @@ msgstr "Érték"
msgid "Parameter value"
msgstr "Paraméter értéke"
-#: company/models.py:429 part/models.py:945 part/models.py:2495
+#: company/models.py:429 part/models.py:945 part/models.py:2509
#: part/templates/part/part_base.html:288
#: templates/InvenTree/settings/settings.html:324
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:721
+#: templates/js/translated/company.js:653 templates/js/translated/part.js:722
msgid "Units"
msgstr "Mértékegységek"
@@ -2559,8 +2587,8 @@ msgstr "Kapcsolódó gyártói alkatrésznek ugyanarra a kiindulási alkatrészr
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237
#: part/bom.py:265 stock/templates/stock/item_base.html:376
#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:898
-#: templates/js/translated/part.js:215 templates/js/translated/part.js:863
+#: templates/js/translated/company.js:774 templates/js/translated/order.js:958
+#: templates/js/translated/part.js:215 templates/js/translated/part.js:864
#: templates/js/translated/table_filters.js:388
msgid "Supplier"
msgstr "Beszállító"
@@ -2570,8 +2598,8 @@ msgid "Select supplier"
msgstr "Beszállító kiválasztása"
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1111
-#: templates/js/translated/part.js:226 templates/js/translated/part.js:881
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198
+#: templates/js/translated/part.js:226 templates/js/translated/part.js:882
msgid "SKU"
msgstr "SKU"
@@ -2592,7 +2620,7 @@ msgid "Supplier part description"
msgstr "Beszállítói alkatrész leírása"
#: company/models.py:576 company/templates/company/supplier_part.html:119
-#: part/models.py:2719 part/templates/part/upload_bom.html:59
+#: part/models.py:2734 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409
msgid "Note"
@@ -2607,8 +2635,8 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr "Minimális díj (pl. tárolási díj)"
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:532 stock/templates/stock/item_base.html:317
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1931
+#: stock/models.py:584 stock/templates/stock/item_base.html:317
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1887
msgid "Packaging"
msgstr "Csomagolás"
@@ -2676,11 +2704,11 @@ msgid "Download image from URL"
msgstr "Kép letöltése URL-ről"
#: company/templates/company/company_base.html:83 order/models.py:574
-#: order/templates/order/sales_order_base.html:115 stock/models.py:551
-#: stock/models.py:552 stock/serializers.py:683
+#: order/templates/order/sales_order_base.html:115 stock/models.py:603
+#: stock/models.py:604 stock/serializers.py:683
#: stock/templates/stock/item_base.html:269
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1348
-#: templates/js/translated/stock.js:2735
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1436
+#: templates/js/translated/stock.js:2691
#: templates/js/translated/table_filters.js:392
msgid "Customer"
msgstr "Vevő"
@@ -2711,7 +2739,7 @@ msgstr "Új beszállítói alkatrész létrehozása"
#: company/templates/company/detail.html:20
#: company/templates/company/manufacturer_part.html:118
-#: part/templates/part/detail.html:367
+#: part/templates/part/detail.html:360
msgid "New Supplier Part"
msgstr "Új beszállítói alkatrész"
@@ -2719,14 +2747,14 @@ msgstr "Új beszállítói alkatrész"
#: company/templates/company/detail.html:79
#: company/templates/company/manufacturer_part.html:127
#: company/templates/company/manufacturer_part.html:156
-#: part/templates/part/category.html:171 part/templates/part/detail.html:376
-#: part/templates/part/detail.html:405
+#: part/templates/part/category.html:168 part/templates/part/detail.html:369
+#: part/templates/part/detail.html:398
msgid "Options"
msgstr "Opciók"
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177
+#: part/templates/part/category.html:174
msgid "Order parts"
msgstr "Alkatrész rendelés"
@@ -2748,7 +2776,7 @@ msgstr "Gyártói alkatrészek"
msgid "Create new manufacturer part"
msgstr "Új gyártói alkatrész létrehozása"
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:395
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:388
msgid "New Manufacturer Part"
msgstr "Új gyártói alkatrész"
@@ -2762,7 +2790,7 @@ msgstr "Beszállítói készlet"
#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:40
+#: part/templates/part/detail.html:80 part/templates/part/part_sidebar.html:40
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
@@ -2784,7 +2812,7 @@ msgstr "Új beszerzési rendelés"
#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:44
+#: part/templates/part/detail.html:103 part/templates/part/part_sidebar.html:44
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
@@ -2802,23 +2830,23 @@ msgid "New Sales Order"
msgstr "Új vevői rendelés"
#: company/templates/company/detail.html:168
-#: templates/js/translated/build.js:1281
+#: templates/js/translated/build.js:1282
msgid "Assigned Stock"
msgstr "Hozzárendelt készlet"
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:186
msgid "Company Notes"
msgstr "Cég megjegyzések"
-#: company/templates/company/detail.html:384
+#: company/templates/company/detail.html:380
#: company/templates/company/manufacturer_part.html:215
-#: part/templates/part/detail.html:449
+#: part/templates/part/detail.html:442
msgid "Delete Supplier Parts?"
msgstr "Töröljük a beszállítói alkatrészeket?"
-#: company/templates/company/detail.html:385
+#: company/templates/company/detail.html:381
#: company/templates/company/manufacturer_part.html:216
-#: part/templates/part/detail.html:450
+#: part/templates/part/detail.html:443
msgid "All selected supplier parts will be deleted"
msgstr "Az összes kiválasztott beszállítói alkatrész törölve lesz"
@@ -2835,7 +2863,7 @@ msgstr "Gyártók"
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:34
#: company/templates/company/supplier_part.html:159
-#: part/templates/part/detail.html:88 part/templates/part/part_base.html:76
+#: part/templates/part/detail.html:83 part/templates/part/part_base.html:76
msgid "Order part"
msgstr "Alkatrész rendelés"
@@ -2862,14 +2890,14 @@ msgid "Suppliers"
msgstr "Beszállítók"
#: company/templates/company/manufacturer_part.html:129
-#: part/templates/part/detail.html:378
+#: part/templates/part/detail.html:371
msgid "Delete supplier parts"
msgstr "Beszállítói alkatrész törlése"
#: company/templates/company/manufacturer_part.html:129
#: company/templates/company/manufacturer_part.html:158
#: company/templates/company/manufacturer_part.html:254
-#: part/templates/part/detail.html:378 part/templates/part/detail.html:407
+#: part/templates/part/detail.html:371 part/templates/part/detail.html:400
#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31
#: users/models.py:217
msgid "Delete"
@@ -2878,12 +2906,12 @@ msgstr "Törlés"
#: company/templates/company/manufacturer_part.html:143
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:17
-#: part/templates/part/detail.html:196 part/templates/part/part_sidebar.html:9
+#: part/templates/part/detail.html:191 part/templates/part/part_sidebar.html:9
msgid "Parameters"
msgstr "Paraméterek"
#: company/templates/company/manufacturer_part.html:147
-#: part/templates/part/detail.html:201
+#: part/templates/part/detail.html:196
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:66
msgid "New Parameter"
@@ -2894,7 +2922,7 @@ msgid "Delete parameters"
msgstr "Paraméterek törlése"
#: company/templates/company/manufacturer_part.html:191
-#: part/templates/part/detail.html:908
+#: part/templates/part/detail.html:894
msgid "Add Parameter"
msgstr "Paraméter hozzáadása"
@@ -2923,9 +2951,9 @@ msgid "Assigned Stock Items"
msgstr "Hozzárendelt készlet tételek"
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:516
+#: company/templates/company/supplier_part.html:24 stock/models.py:568
#: stock/templates/stock/item_base.html:381
-#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1888
+#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1844
msgid "Supplier Part"
msgstr "Beszállítói alkatrész"
@@ -2951,7 +2979,7 @@ msgstr "Új készlet tétel létrehozása"
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:166
-#: templates/js/translated/stock.js:368
+#: templates/js/translated/stock.js:367
msgid "New Stock Item"
msgstr "Új készlet tétel"
@@ -2961,7 +2989,7 @@ msgid "Supplier Part Orders"
msgstr "Beszállítói alkatrész rendelések"
#: company/templates/company/supplier_part.html:160
-#: part/templates/part/detail.html:89
+#: part/templates/part/detail.html:84
msgid "Order Part"
msgstr "Alkatrész rendelése"
@@ -2972,7 +3000,7 @@ msgstr "Árinformációk"
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1319
+#: part/templates/part/prices.html:271 part/views.py:1254
msgid "Add Price Break"
msgstr "Árlépcső hozzáadása"
@@ -2980,11 +3008,11 @@ msgstr "Árlépcső hozzáadása"
msgid "No price break information found"
msgstr "Nincs árlépcső információ"
-#: company/templates/company/supplier_part.html:224 part/views.py:1381
+#: company/templates/company/supplier_part.html:224 part/views.py:1316
msgid "Delete Price Break"
msgstr "Árlépcső törlése"
-#: company/templates/company/supplier_part.html:238 part/views.py:1367
+#: company/templates/company/supplier_part.html:238 part/views.py:1302
msgid "Edit Price Break"
msgstr "Árlépcső szerkesztése"
@@ -3002,10 +3030,10 @@ msgstr "Árlépcső törlése"
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:150
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/bom.js:553 templates/js/translated/part.js:495
-#: templates/js/translated/part.js:630 templates/js/translated/part.js:1147
-#: templates/js/translated/part.js:1308 templates/js/translated/stock.js:935
-#: templates/js/translated/stock.js:1711 templates/navbar.html:28
+#: templates/js/translated/bom.js:553 templates/js/translated/part.js:496
+#: templates/js/translated/part.js:631 templates/js/translated/part.js:1148
+#: templates/js/translated/part.js:1309 templates/js/translated/stock.js:891
+#: templates/js/translated/stock.js:1667 templates/navbar.html:28
msgid "Stock"
msgstr "Készlet"
@@ -3028,7 +3056,7 @@ msgstr "Árazás"
#: stock/templates/stock/location.html:150
#: stock/templates/stock/location.html:162
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2641
+#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2597
#: templates/stats.html:105 templates/stats.html:114 users/models.py:43
msgid "Stock Items"
msgstr "Készlet tételek"
@@ -3058,20 +3086,20 @@ msgstr "Cégek"
msgid "New Company"
msgstr "Új cég"
-#: company/views.py:129 part/views.py:591
+#: company/views.py:129 part/views.py:589
msgid "Download Image"
msgstr "Kép letöltése"
-#: company/views.py:158 part/views.py:623
+#: company/views.py:158 part/views.py:621
msgid "Image size exceeds maximum allowable size for download"
msgstr "A kép mérete meghaladja a maximum megengedett letöltés méretét"
-#: company/views.py:165 part/views.py:630
+#: company/views.py:165 part/views.py:628
#, python-brace-format
msgid "Invalid response: {code}"
msgstr "Érvénytelen válasz: {code}"
-#: company/views.py:174 part/views.py:639
+#: company/views.py:174 part/views.py:637
msgid "Supplied URL is not a valid image file"
msgstr "A megadott URL nem egy érvényes kép fájl"
@@ -3190,7 +3218,7 @@ msgid "Company from which the items are being ordered"
msgstr "Cég akitől a tételek beszerzésre kerülnek"
#: order/models.py:231 order/templates/order/order_base.html:118
-#: templates/js/translated/order.js:907
+#: templates/js/translated/order.js:967
msgid "Supplier Reference"
msgstr "Beszállítói azonosító"
@@ -3247,7 +3275,7 @@ msgid "Target date for order completion. Order will be overdue after this date."
msgstr "Cél dátum a rendelés teljesítéséhez. Ez után számít majd késettnek."
#: order/models.py:589 order/models.py:1084
-#: templates/js/translated/order.js:1395 templates/js/translated/order.js:1546
+#: templates/js/translated/order.js:1483 templates/js/translated/order.js:1634
msgid "Shipment Date"
msgstr "Kiszállítás dátuma"
@@ -3292,7 +3320,7 @@ msgid "Supplier part must match supplier"
msgstr "Beszállítói alkatrésznek egyeznie kell a beszállítóval"
#: order/models.py:891 order/models.py:982 order/models.py:1078
-#: templates/js/translated/order.js:1937 templates/js/translated/stock.js:2403
+#: templates/js/translated/order.js:2025 templates/js/translated/stock.js:2359
msgid "Order"
msgstr "Rendelés"
@@ -3300,8 +3328,8 @@ msgstr "Rendelés"
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:331
-#: templates/js/translated/order.js:876 templates/js/translated/part.js:838
-#: templates/js/translated/stock.js:1865 templates/js/translated/stock.js:2716
+#: templates/js/translated/order.js:936 templates/js/translated/part.js:839
+#: templates/js/translated/stock.js:1821 templates/js/translated/stock.js:2672
msgid "Purchase Order"
msgstr "Beszerzési rendelés"
@@ -3310,8 +3338,8 @@ msgid "Supplier part"
msgstr "Beszállítói alkatrész"
#: order/models.py:920 order/templates/order/order_base.html:163
-#: templates/js/translated/order.js:654 templates/js/translated/order.js:1226
-#: templates/js/translated/part.js:932 templates/js/translated/part.js:959
+#: templates/js/translated/order.js:714 templates/js/translated/order.js:1313
+#: templates/js/translated/part.js:933 templates/js/translated/part.js:960
#: templates/js/translated/table_filters.js:312
msgid "Received"
msgstr "Beérkezett"
@@ -3320,9 +3348,9 @@ msgstr "Beérkezett"
msgid "Number of items received"
msgstr "Érkezett tételek száma"
-#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:645
+#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:697
#: stock/serializers.py:170 stock/templates/stock/item_base.html:338
-#: templates/js/translated/stock.js:1919
+#: templates/js/translated/stock.js:1875
msgid "Purchase Price"
msgstr "Beszerzési ár"
@@ -3456,11 +3484,11 @@ msgstr "Sortétel nem egyezik a beszerzési megrendeléssel"
msgid "Select destination location for received items"
msgstr "Válassz cél helyet a beérkezett tételeknek"
-#: order/serializers.py:273 templates/js/translated/order.js:514
+#: order/serializers.py:273 templates/js/translated/order.js:574
msgid "Enter batch code for incoming stock items"
msgstr "Írd be a batch kódját a beérkezett tételeknek"
-#: order/serializers.py:281 templates/js/translated/order.js:525
+#: order/serializers.py:281 templates/js/translated/order.js:585
msgid "Enter serial numbers for incoming stock items"
msgstr "Írd be a sorozatszámokat a beérkezett tételekhez"
@@ -3578,7 +3606,7 @@ msgstr "Rendelés leírása"
#: order/templates/order/order_base.html:94
#: order/templates/order/sales_order_base.html:89
-#: templates/js/translated/stock.js:2459
+#: templates/js/translated/stock.js:2415
msgid "Order Status"
msgstr "Rendelés állapota"
@@ -3650,10 +3678,10 @@ msgstr "Beszállítói alkatrész kiválasztása"
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/bom.js:76 templates/js/translated/build.js:380
-#: templates/js/translated/build.js:528 templates/js/translated/build.js:1547
-#: templates/js/translated/order.js:602 templates/js/translated/order.js:1605
-#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769
+#: templates/js/translated/bom.js:76 templates/js/translated/build.js:381
+#: templates/js/translated/build.js:529 templates/js/translated/build.js:1558
+#: templates/js/translated/order.js:662 templates/js/translated/order.js:1693
+#: templates/js/translated/stock.js:557 templates/js/translated/stock.js:725
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr "Sor törlése"
@@ -3717,8 +3745,8 @@ msgid "Select existing purchase orders, or create new orders."
msgstr "Válassz létező beszerzési rendelést vagy készíts újakat."
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:940 templates/js/translated/order.js:1403
-#: templates/js/translated/order.js:1533
+#: templates/js/translated/order.js:1000 templates/js/translated/order.js:1491
+#: templates/js/translated/order.js:1621
msgid "Items"
msgstr "Tételek"
@@ -3752,9 +3780,9 @@ msgid "Purchase Order Items"
msgstr "Beszerzési rendelés tételei"
#: order/templates/order/purchase_order_detail.html:27
-#: order/templates/order/purchase_order_detail.html:182
+#: order/templates/order/purchase_order_detail.html:166
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:245
+#: order/templates/order/sales_order_detail.html:233
msgid "Add Line Item"
msgstr "Sortétel hozzáadása"
@@ -3794,7 +3822,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr "Ehhez a vevői rendeléshez nincs minden alkatrész lefoglalva"
#: order/templates/order/sales_order_base.html:122
-#: templates/js/translated/order.js:1361
+#: templates/js/translated/order.js:1449
msgid "Customer Reference"
msgstr "Vevő azonosító"
@@ -3827,7 +3855,7 @@ msgid "Pending Shipments"
msgstr "Függő szállítmányok"
#: order/templates/order/sales_order_detail.html:48
-#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1465
+#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1466
msgid "Actions"
msgstr "Műveletek"
@@ -3902,31 +3930,31 @@ 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/api.py:499
+#: part/api.py:502
msgid "Valid"
msgstr "Érvényes"
-#: part/api.py:500
+#: part/api.py:503
msgid "Validate entire Bill of Materials"
msgstr "Teljes alkatrészjegyzék jóváhagyása"
-#: part/api.py:505
+#: part/api.py:508
msgid "This option must be selected"
msgstr "Ennek az opciónak ki kll lennie választva"
-#: part/api.py:847
+#: part/api.py:866
msgid "Must be greater than zero"
msgstr "Nullánál nagyobb kell legyen"
-#: part/api.py:851
+#: part/api.py:870
msgid "Must be a valid quantity"
msgstr "Érvényes mennyiségnek kell lennie"
-#: part/api.py:866
+#: part/api.py:885
msgid "Specify location for initial part stock"
msgstr "Hely megadása a kezdeti alkarész készlethez"
-#: part/api.py:897 part/api.py:901 part/api.py:916 part/api.py:920
+#: part/api.py:916 part/api.py:920 part/api.py:935 part/api.py:939
msgid "This field is required"
msgstr "Ez a mező kötelező"
@@ -3944,7 +3972,7 @@ msgid "Available Stock"
msgstr "Elérhető készlet"
#: part/bom.py:128 part/templates/part/part_base.html:203
-#: templates/js/translated/part.js:1323
+#: templates/js/translated/part.js:1324
msgid "On Order"
msgstr "Beszállítás alatt"
@@ -3976,7 +4004,7 @@ msgstr "Alapértelmezett kulcsszavak"
msgid "Default keywords for parts in this category"
msgstr "Ebben a kategóriában évő alkatrészek kulcsszavai alapban"
-#: part/models.py:97 part/models.py:2571 part/templates/part/category.html:15
+#: part/models.py:97 part/models.py:2585 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Alkatrész kategória"
@@ -3993,7 +4021,7 @@ msgstr "Alkatrész kategóriák"
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:37
-#: templates/js/translated/part.js:1685 templates/navbar.html:21
+#: templates/js/translated/part.js:1686 templates/navbar.html:21
#: templates/stats.html:92 templates/stats.html:101 users/models.py:41
msgid "Parts"
msgstr "Alkatrészek"
@@ -4023,7 +4051,7 @@ msgstr "A legutóbbi sorozatszám"
msgid "Duplicate IPN not allowed in part settings"
msgstr "Azonos IPN nem engedélyezett az alkatrész beállításokban"
-#: part/models.py:803 part/models.py:2624
+#: part/models.py:803 part/models.py:2638
msgid "Part name"
msgstr "Alkatrész neve"
@@ -4056,11 +4084,11 @@ msgstr "Kulcsszavak"
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:841 part/models.py:2321 part/models.py:2570
+#: part/models.py:841 part/models.py:2335 part/models.py:2584
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:223
-#: templates/js/translated/part.js:1290
+#: templates/js/translated/part.js:1291
msgid "Category"
msgstr "Kategória"
@@ -4069,8 +4097,8 @@ msgid "Part category"
msgstr "Alkatrész kategória"
#: part/models.py:847 part/templates/part/part_base.html:274
-#: templates/js/translated/part.js:618 templates/js/translated/part.js:1243
-#: templates/js/translated/stock.js:1683
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:1244
+#: templates/js/translated/stock.js:1639
msgid "IPN"
msgstr "IPN"
@@ -4083,7 +4111,7 @@ msgid "Part revision or version number"
msgstr "Alkatrész változat vagy verziószám"
#: part/models.py:855 part/templates/part/part_base.html:281
-#: report/models.py:200 templates/js/translated/part.js:622
+#: report/models.py:200 templates/js/translated/part.js:623
msgid "Revision"
msgstr "Változat"
@@ -4175,301 +4203,309 @@ msgstr "Létrehozó"
msgid "Sell multiple"
msgstr "Több értékesítése"
-#: part/models.py:2371
+#: part/models.py:2385
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:2388
+#: part/models.py:2402
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:2408 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:1311
+#: part/models.py:2422 templates/js/translated/part.js:1737
+#: templates/js/translated/stock.js:1267
msgid "Test Name"
msgstr "Teszt név"
-#: part/models.py:2409
+#: part/models.py:2423
msgid "Enter a name for the test"
msgstr "Add meg a teszt nevét"
-#: part/models.py:2414
+#: part/models.py:2428
msgid "Test Description"
msgstr "Teszt leírása"
-#: part/models.py:2415
+#: part/models.py:2429
msgid "Enter description for this test"
msgstr "Adj hozzá egy leírást ehhez a teszthez"
-#: part/models.py:2420 templates/js/translated/part.js:1745
+#: part/models.py:2434 templates/js/translated/part.js:1746
#: templates/js/translated/table_filters.js:276
msgid "Required"
msgstr "Kötelező"
-#: part/models.py:2421
+#: part/models.py:2435
msgid "Is this test required to pass?"
msgstr "Szükséges-e hogy ez a teszt sikeres legyen?"
-#: part/models.py:2426 templates/js/translated/part.js:1753
+#: part/models.py:2440 templates/js/translated/part.js:1754
msgid "Requires Value"
msgstr "Kötelező érték"
-#: part/models.py:2427
+#: part/models.py:2441
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:2432 templates/js/translated/part.js:1760
+#: part/models.py:2446 templates/js/translated/part.js:1761
msgid "Requires Attachment"
msgstr "Kötelező melléklet"
-#: part/models.py:2433
+#: part/models.py:2447
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:2444
+#: part/models.py:2458
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr "Érvénytelen karakter ({c}) a sablon nevében"
-#: part/models.py:2480
+#: part/models.py:2494
msgid "Parameter template name must be unique"
msgstr "A paraméter sablon nevének egyedinek kell lennie"
-#: part/models.py:2488
+#: part/models.py:2502
msgid "Parameter Name"
msgstr "Paraméter neve"
-#: part/models.py:2495
+#: part/models.py:2509
msgid "Parameter Units"
msgstr "Paraméter mértékegysége"
-#: part/models.py:2525
+#: part/models.py:2539
msgid "Parent Part"
msgstr "Szülő alkatrész"
-#: part/models.py:2527 part/models.py:2576 part/models.py:2577
+#: part/models.py:2541 part/models.py:2590 part/models.py:2591
#: templates/InvenTree/settings/settings.html:218
msgid "Parameter Template"
msgstr "Paraméter sablon"
-#: part/models.py:2529
+#: part/models.py:2543
msgid "Data"
msgstr "Adat"
-#: part/models.py:2529
+#: part/models.py:2543
msgid "Parameter Value"
msgstr "Paraméter értéke"
-#: part/models.py:2581 templates/InvenTree/settings/settings.html:227
+#: part/models.py:2595 templates/InvenTree/settings/settings.html:227
msgid "Default Value"
msgstr "Alapértelmezett érték"
-#: part/models.py:2582
+#: part/models.py:2596
msgid "Default Parameter Value"
msgstr "Alapértelmezett paraméter érték"
-#: part/models.py:2616
+#: part/models.py:2630
msgid "Part ID or part name"
msgstr "Alkatrész azonosító vagy alkatrész név"
-#: part/models.py:2619 templates/js/translated/model_renderers.js:182
+#: part/models.py:2633 templates/js/translated/model_renderers.js:182
msgid "Part ID"
msgstr "Alkatrész azonosító"
-#: part/models.py:2620
+#: part/models.py:2634
msgid "Unique part ID value"
msgstr "Egyedi alkatrész azonosító érték"
-#: part/models.py:2623
+#: part/models.py:2637
msgid "Part Name"
msgstr "Alkatrész neve"
-#: part/models.py:2627
+#: part/models.py:2641
msgid "Part IPN"
msgstr "Alkatrész IPN"
-#: part/models.py:2628
+#: part/models.py:2642
msgid "Part IPN value"
msgstr "Alkatrész IPN érték"
-#: part/models.py:2631
+#: part/models.py:2645
msgid "Level"
msgstr "Szint"
-#: part/models.py:2632
+#: part/models.py:2646
msgid "BOM level"
msgstr "Alkatrészjegyzék szint"
-#: part/models.py:2692
+#: part/models.py:2707
msgid "Select parent part"
msgstr "Szülő alkatrész kiválasztása"
-#: part/models.py:2700
+#: part/models.py:2715
msgid "Sub part"
msgstr "Al alkatrész"
-#: part/models.py:2701
+#: part/models.py:2716
msgid "Select part to be used in BOM"
msgstr "Válaszd ki az alkatrészjegyzékben használandó alkatrészt"
-#: part/models.py:2707
+#: part/models.py:2722
msgid "BOM quantity for this BOM item"
msgstr "Alkatrészjegyzék mennyiség ehhez az alkatrészjegyzék tételhez"
-#: part/models.py:2709 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:791 templates/js/translated/bom.js:865
+#: part/models.py:2724 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr "Opcionális"
-#: part/models.py:2709
+#: part/models.py:2724
msgid "This BOM item is optional"
msgstr "Ez az alkatrészjegyzék tétel opcionális"
-#: part/models.py:2712 part/templates/part/upload_bom.html:55
+#: part/models.py:2727 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr "Többlet"
-#: part/models.py:2713
+#: part/models.py:2728
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:2716
+#: part/models.py:2731
msgid "BOM item reference"
msgstr "Alkatrészjegyzék tétel azonosító"
-#: part/models.py:2719
+#: part/models.py:2734
msgid "BOM item notes"
msgstr "Alkatrészjegyzék tétel megjegyzései"
-#: part/models.py:2721
+#: part/models.py:2736
msgid "Checksum"
msgstr "Ellenőrző összeg"
-#: part/models.py:2721
+#: part/models.py:2736
msgid "BOM line checksum"
msgstr "Alkatrészjegyzék sor ellenőrző összeg"
-#: part/models.py:2725 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:882
+#: part/models.py:2740 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:880
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr "Örökölt"
-#: part/models.py:2726
+#: part/models.py:2741
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:2731 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:874
+#: part/models.py:2746 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:872
msgid "Allow Variants"
msgstr "Változatok engedélyezése"
-#: part/models.py:2732
+#: part/models.py:2747
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:2817 stock/models.py:394
+#: part/models.py:2832 stock/models.py:446
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:2826 part/models.py:2828
+#: part/models.py:2841 part/models.py:2843
msgid "Sub part must be specified"
msgstr "Al alkatrészt kötelező megadni"
-#: part/models.py:2957
+#: part/models.py:2972
msgid "BOM Item Substitute"
msgstr "Alkatrészjegyzék tétel helyettesítő"
-#: part/models.py:2979
+#: part/models.py:2994
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:2991
+#: part/models.py:3006
msgid "Parent BOM item"
msgstr "Szülő alkatrészjegyzék tétel"
-#: part/models.py:2999
+#: part/models.py:3014
msgid "Substitute part"
msgstr "Helyettesítő alkatrész"
-#: part/models.py:3010
+#: part/models.py:3025
msgid "Part 1"
msgstr "1.rész"
-#: part/models.py:3014
+#: part/models.py:3029
msgid "Part 2"
msgstr "2.rész"
-#: part/models.py:3014
+#: part/models.py:3029
msgid "Select Related Part"
msgstr "Válassz kapcsolódó alkatrészt"
-#: part/models.py:3046
+#: part/models.py:3061
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr "Hiba a kapcsolat létrehozása közben: ellenőrizd hogy az alkatrész nem kapcsolódik-e saját magához és azt hogy a kapcsolat egyedi"
-#: part/serializers.py:667
+#: part/serializers.py:670
msgid "Select part to copy BOM from"
msgstr "Válassz alkatrészt ahonnan az alkatrészjegyzéket másoljuk"
-#: part/serializers.py:678
+#: part/serializers.py:681
msgid "Remove Existing Data"
msgstr "Létező adat törlése"
-#: part/serializers.py:679
+#: part/serializers.py:682
msgid "Remove existing BOM items before copying"
msgstr "Meglévő alkatrészjegyzék tételek törlése a másolás előtt"
-#: part/serializers.py:684
+#: part/serializers.py:687
msgid "Include Inherited"
msgstr "Örököltekkel együtt"
-#: part/serializers.py:685
+#: part/serializers.py:688
msgid "Include BOM items which are inherited from templated parts"
msgstr "Sablon alkatrészektől örökölt alkatrészjegyzék tételek használata"
-#: part/serializers.py:690
+#: part/serializers.py:693
msgid "Skip Invalid Rows"
msgstr "Hibás sorok kihagyása"
-#: part/serializers.py:691
+#: part/serializers.py:694
msgid "Enable this option to skip invalid rows"
msgstr "Engedély a hibás sorok kihagyására"
-#: part/serializers.py:734
+#: part/serializers.py:699
+msgid "Copy Substitute Parts"
+msgstr "Helyettesítő alkatrészek másolása"
+
+#: part/serializers.py:700
+msgid "Copy substitute parts when duplicate BOM items"
+msgstr "Helyettesítő alkatrészek másolása az alkatrészjegyzék tételek másolásakor"
+
+#: part/serializers.py:744
msgid "Clear Existing BOM"
msgstr "Meglévő alkatrészjegyzék törlése"
-#: part/serializers.py:735
+#: part/serializers.py:745
msgid "Delete existing BOM items before uploading"
msgstr "Meglévő alkatrészjegyzék tételek törlése a feltöltés előtt"
-#: part/serializers.py:762
+#: part/serializers.py:772
msgid "No part column specified"
msgstr "Nincs megadva alkatrész oszlop"
-#: part/serializers.py:805
+#: part/serializers.py:815
msgid "Multiple matching parts found"
msgstr "Több egyező alkatrész is található"
-#: part/serializers.py:808
+#: part/serializers.py:818
msgid "No matching part found"
msgstr "Nincs egyező alkatrész"
-#: part/serializers.py:811
+#: part/serializers.py:821
msgid "Part is not designated as a component"
msgstr "Az alkatrész nem lett összetevőként jelölve"
-#: part/serializers.py:820
+#: part/serializers.py:830
msgid "Quantity not provided"
msgstr "Mennyiség nincs megadva"
-#: part/serializers.py:828
+#: part/serializers.py:838
msgid "Invalid quantity"
msgstr "Érvénytelen mennyiség"
-#: part/serializers.py:847
+#: part/serializers.py:857
msgid "At least one BOM item is required"
msgstr "Legalább egy alkatrészjegyzék tétel szükséges"
@@ -4496,7 +4532,7 @@ msgstr "A %(part)s alkatrészhez tartozó alkatrészjegyzéket utoljár
msgid "The BOM for %(part)s has not been validated."
msgstr "A %(part)s alkatrészhez tartozó alkatrészjegyzék még nincs jóváhagyva."
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:279
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:274
msgid "BOM actions"
msgstr "Alkatrészjegyzék műveletek"
@@ -4548,7 +4584,7 @@ msgstr "Kategória elérési út"
msgid "Top level part category"
msgstr "Legfelső szintű alkatrész kategória"
-#: part/templates/part/category.html:114 part/templates/part/category.html:205
+#: part/templates/part/category.html:114 part/templates/part/category.html:202
#: part/templates/part/category_sidebar.html:7
msgid "Subcategories"
msgstr "Alkategóriák"
@@ -4557,55 +4593,51 @@ msgstr "Alkategóriák"
msgid "Parts (Including subcategories)"
msgstr "Alkatrészek száma (alkategóriákkal együtt)"
-#: part/templates/part/category.html:156
-msgid "Export Part Data"
-msgstr "Alkatrész adatok exportálása"
-
-#: part/templates/part/category.html:157 part/templates/part/category.html:181
-msgid "Export"
-msgstr "Exportálás"
-
-#: part/templates/part/category.html:160
+#: part/templates/part/category.html:157
msgid "Create new part"
msgstr "Alkatrész létrehozása"
-#: part/templates/part/category.html:161 templates/js/translated/bom.js:365
+#: part/templates/part/category.html:158 templates/js/translated/bom.js:365
msgid "New Part"
msgstr "Új alkatrész"
-#: part/templates/part/category.html:175
+#: part/templates/part/category.html:172
msgid "Set category"
msgstr "Kategória beállítása"
-#: part/templates/part/category.html:175
+#: part/templates/part/category.html:172
msgid "Set Category"
msgstr "Kategória beállítása"
-#: part/templates/part/category.html:179
+#: part/templates/part/category.html:176
msgid "Print Labels"
msgstr "Címkék nyomtatása"
-#: part/templates/part/category.html:181
+#: part/templates/part/category.html:178
+msgid "Export"
+msgstr "Exportálás"
+
+#: part/templates/part/category.html:178
msgid "Export Data"
msgstr "Adatok exportálása"
-#: part/templates/part/category.html:195
+#: part/templates/part/category.html:192
msgid "Part Parameters"
msgstr "Alkatrész paraméterek"
-#: part/templates/part/category.html:288
+#: part/templates/part/category.html:285
msgid "Create Part Category"
msgstr "Alkatrész kategória létrehozása"
-#: part/templates/part/category.html:315
+#: part/templates/part/category.html:305
msgid "Create Part"
msgstr "Alkatrész létrehozása"
-#: part/templates/part/category.html:318
+#: part/templates/part/category.html:308
msgid "Create another part after this one"
msgstr "Új alkatrész létrehozása ez után"
-#: part/templates/part/category.html:319
+#: part/templates/part/category.html:309
msgid "Part created successfully"
msgstr "Alkatrész sikeresen létrehozva"
@@ -4676,155 +4708,150 @@ msgstr "%(full_name)s - %(desc)s (%(match_per)s%% egyezik)"
msgid "Part Stock"
msgstr "Alkatrész készlet"
-#: part/templates/part/detail.html:33
-#, python-format
-msgid "Showing stock for all variants of %(full_name)s"
-msgstr "A %(full_name)s összes változatának készlete"
-
-#: part/templates/part/detail.html:43
+#: part/templates/part/detail.html:38
msgid "Part Stock Allocations"
msgstr "Alkatrész készlet foglalások"
-#: part/templates/part/detail.html:60
+#: part/templates/part/detail.html:55
msgid "Part Test Templates"
msgstr "Alkatrész teszt sablonok"
-#: part/templates/part/detail.html:65
+#: part/templates/part/detail.html:60
msgid "Add Test Template"
msgstr "Teszt sablon hozzáadása"
-#: part/templates/part/detail.html:122
+#: part/templates/part/detail.html:117
msgid "Sales Order Allocations"
msgstr "Vevői rendeléshez foglalások"
-#: part/templates/part/detail.html:168
+#: part/templates/part/detail.html:163
msgid "Part Variants"
msgstr "Alkatrész változatok"
-#: part/templates/part/detail.html:172
+#: part/templates/part/detail.html:167
msgid "Create new variant"
msgstr "Új változat létrehozása"
-#: part/templates/part/detail.html:173
+#: part/templates/part/detail.html:168
msgid "New Variant"
msgstr "Új változat"
-#: part/templates/part/detail.html:200
+#: part/templates/part/detail.html:195
msgid "Add new parameter"
msgstr "Paraméter hozzáadása"
-#: part/templates/part/detail.html:237 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:52
msgid "Related Parts"
msgstr "Kapcsolódó alkatrészek"
-#: part/templates/part/detail.html:241 part/templates/part/detail.html:242
+#: part/templates/part/detail.html:236 part/templates/part/detail.html:237
msgid "Add Related"
msgstr "Kapcsolódó hozzáadása"
-#: part/templates/part/detail.html:262 part/templates/part/part_sidebar.html:18
+#: part/templates/part/detail.html:257 part/templates/part/part_sidebar.html:18
msgid "Bill of Materials"
msgstr "Alkatrészjegyzék"
-#: part/templates/part/detail.html:267
+#: part/templates/part/detail.html:262
msgid "Export actions"
msgstr "Exportálási műveletek"
-#: part/templates/part/detail.html:271 templates/js/translated/bom.js:283
+#: part/templates/part/detail.html:266 templates/js/translated/bom.js:283
msgid "Export BOM"
msgstr "Alkatrészjegyzék exportálása"
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:268
msgid "Print BOM Report"
msgstr "Alkatrészjegyzék riport nyomtatása"
-#: part/templates/part/detail.html:283
+#: part/templates/part/detail.html:278
msgid "Upload BOM"
msgstr "Alkatrészjegyzék feltöltése"
-#: part/templates/part/detail.html:285 templates/js/translated/part.js:272
+#: part/templates/part/detail.html:279 templates/js/translated/part.js:272
msgid "Copy BOM"
msgstr "Alkatrészjegyzék másolása"
-#: part/templates/part/detail.html:287
+#: part/templates/part/detail.html:280
msgid "Validate BOM"
msgstr "Alkatrészjegyzék jóváhagyása"
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:285
msgid "New BOM Item"
msgstr "Új alkatrészjegyzék tétel"
-#: part/templates/part/detail.html:293
+#: part/templates/part/detail.html:286
msgid "Add BOM Item"
msgstr "Alkatrészjegyzék tétel hozzáadása"
-#: part/templates/part/detail.html:306
+#: part/templates/part/detail.html:299
msgid "Assemblies"
msgstr "Gyártmányok"
-#: part/templates/part/detail.html:323
+#: part/templates/part/detail.html:316
msgid "Part Builds"
msgstr "Alkatrész gyártások"
-#: part/templates/part/detail.html:348
+#: part/templates/part/detail.html:341
msgid "Build Order Allocations"
msgstr "Gyártáshoz foglalások"
-#: part/templates/part/detail.html:363
+#: part/templates/part/detail.html:356
msgid "Part Suppliers"
msgstr "Alkatrész beszállítók"
-#: part/templates/part/detail.html:391
+#: part/templates/part/detail.html:384
msgid "Part Manufacturers"
msgstr "Alkatrész gyártók"
-#: part/templates/part/detail.html:407
+#: part/templates/part/detail.html:400
msgid "Delete manufacturer parts"
msgstr "Gyártói alkatrészek törlése"
-#: part/templates/part/detail.html:589
+#: part/templates/part/detail.html:582
msgid "Delete selected BOM items?"
msgstr "Töröljük a kiválasztott alkatrészjegyzék tételeket?"
-#: part/templates/part/detail.html:590
+#: part/templates/part/detail.html:583
msgid "All selected BOM items will be deleted"
msgstr "Az összes kijelölt alkatrészjegyzék tétel törlésre kerül"
-#: part/templates/part/detail.html:639
+#: part/templates/part/detail.html:632
msgid "Create BOM Item"
msgstr "Alkatrészjegyzék tétel létrehozása"
-#: part/templates/part/detail.html:696
+#: part/templates/part/detail.html:689
msgid "Related Part"
msgstr "Kapcsolódó alkatrész"
-#: part/templates/part/detail.html:704
+#: part/templates/part/detail.html:697
msgid "Add Related Part"
msgstr "Kapcsolódó alkatrész hozzáadása"
-#: part/templates/part/detail.html:801
+#: part/templates/part/detail.html:794
msgid "Add Test Result Template"
msgstr "Teszt eredmény sablon hozzáadása"
-#: part/templates/part/detail.html:858
+#: part/templates/part/detail.html:844
msgid "Edit Part Notes"
msgstr "Alkatrész megjegyzések szerkesztése"
-#: part/templates/part/detail.html:971
+#: part/templates/part/detail.html:957
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr "Beszerzési egységár - %(currency)s"
-#: part/templates/part/detail.html:983
+#: part/templates/part/detail.html:969
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr "Egységár-önköltség különbség - %(currency)s"
-#: part/templates/part/detail.html:995
+#: part/templates/part/detail.html:981
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr "Beszállítói egység költség - %(currency)s"
-#: part/templates/part/detail.html:1084
+#: part/templates/part/detail.html:1070
#, python-format
msgid "Unit Price - %(currency)s"
msgstr "Egységár - %(currency)s"
@@ -4969,7 +4996,7 @@ msgstr "Virtuális (nem kézzelfogható alkatrész)"
#: templates/js/translated/company.js:508
#: templates/js/translated/company.js:765
#: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:533 templates/js/translated/part.js:610
+#: templates/js/translated/part.js:534 templates/js/translated/part.js:611
msgid "Inactive"
msgstr "Inaktív"
@@ -4983,7 +5010,7 @@ msgstr "Alkatrész részletei"
msgid "This part is a variant of %(link)s"
msgstr "Ez az alkatrész egy változata a %(link)s alkatrésznek"
-#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2356
+#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2444
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr "Készleten"
@@ -5000,12 +5027,12 @@ msgstr "Vevői rendelésekhez szükséges"
msgid "Allocated to Orders"
msgstr "Lefoglalva összesen"
-#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:903
+#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:901
msgid "Can Build"
msgstr "Gyártható"
-#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1154
-#: templates/js/translated/part.js:1327
+#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1155
+#: templates/js/translated/part.js:1328
msgid "Building"
msgstr "Gyártásban"
@@ -5057,7 +5084,7 @@ msgid "Total Cost"
msgstr "Teljes költség"
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:857
+#: templates/js/translated/bom.js:855
msgid "No supplier pricing available"
msgstr "Nincs beszállítói árinfomáció"
@@ -5177,7 +5204,7 @@ msgstr "Eladási ár megjelenítése"
msgid "Calculation parameters"
msgstr "Számítási paraméterek"
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:851
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849
msgid "Supplier Cost"
msgstr "Beszállítói költség"
@@ -5199,7 +5226,7 @@ msgstr "Az alkatrészhez nem áll rendelkezésre ártörténet."
msgid "Internal Cost"
msgstr "Belső költség"
-#: part/templates/part/prices.html:215 part/views.py:1390
+#: part/templates/part/prices.html:215 part/views.py:1325
msgid "Add Internal Price Break"
msgstr "Belső árlépcső hozzáadása"
@@ -5219,9 +5246,9 @@ msgstr "Az alkatrészhez nem áll rendelkezésre eladási ártörténet."
msgid "Set category for the following parts"
msgstr "Állítsd be a következő alkatrészek kategóriáját"
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813
-#: templates/js/translated/part.js:497 templates/js/translated/part.js:1144
-#: templates/js/translated/part.js:1331
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811
+#: templates/js/translated/part.js:498 templates/js/translated/part.js:1145
+#: templates/js/translated/part.js:1332
msgid "No Stock"
msgstr "Nincs készlet"
@@ -5275,100 +5302,100 @@ msgstr "Alkatrész változat létrehozása"
msgid "Create a new variant of template '%(full_name)s'."
msgstr "Új változat létrehozása a '%(full_name)s' sablonból."
-#: part/templatetags/inventree_extras.py:172
+#: part/templatetags/inventree_extras.py:174
msgid "Unknown database"
msgstr "Ismeretlen adatbázis"
-#: part/views.py:90
+#: part/views.py:88
msgid "Set Part Category"
msgstr "Alkatrész kategória beállítása"
-#: part/views.py:140
+#: part/views.py:138
#, python-brace-format
msgid "Set category for {n} parts"
msgstr "Állítsd be {n} alkatrész kategóriáját"
-#: part/views.py:212
+#: part/views.py:210
msgid "Match References"
msgstr "Azonosítók egyeztetése"
-#: part/views.py:509
+#: part/views.py:507
msgid "None"
msgstr "Egyik sem"
-#: part/views.py:568
+#: part/views.py:566
msgid "Part QR Code"
msgstr "Alkatrész QR kódja"
-#: part/views.py:670
+#: part/views.py:668
msgid "Select Part Image"
msgstr "Válassz képet az alkatrészhez"
-#: part/views.py:696
+#: part/views.py:694
msgid "Updated part image"
msgstr "Alkatrész képe frissítve"
-#: part/views.py:699
+#: part/views.py:697
msgid "Part image not found"
msgstr "Az alkatrész képe nem található"
-#: part/views.py:850
+#: part/views.py:785
msgid "Confirm Part Deletion"
msgstr "Alkatrész törlés megerősítése"
-#: part/views.py:857
+#: part/views.py:792
msgid "Part was deleted"
msgstr "Alkatrész törölve"
-#: part/views.py:866
+#: part/views.py:801
msgid "Part Pricing"
msgstr "Alkatrész árak"
-#: part/views.py:1015
+#: part/views.py:950
msgid "Create Part Parameter Template"
msgstr "Alkatrész paraméter sablon létrehozása"
-#: part/views.py:1025
+#: part/views.py:960
msgid "Edit Part Parameter Template"
msgstr "Alkatrész paraméter sablon módosítása"
-#: part/views.py:1032
+#: part/views.py:967
msgid "Delete Part Parameter Template"
msgstr "Alkatrész paraméter sablon törlése"
-#: part/views.py:1091 templates/js/translated/part.js:315
+#: part/views.py:1026 templates/js/translated/part.js:315
msgid "Edit Part Category"
msgstr "Alkatrész kategória szerkesztése"
-#: part/views.py:1129
+#: part/views.py:1064
msgid "Delete Part Category"
msgstr "Alkatrész kategória törlése"
-#: part/views.py:1135
+#: part/views.py:1070
msgid "Part category was deleted"
msgstr "Alkatrész kategória törölve"
-#: part/views.py:1144
+#: part/views.py:1079
msgid "Create Category Parameter Template"
msgstr "Kategória paraméter sablon létrehozása"
-#: part/views.py:1245
+#: part/views.py:1180
msgid "Edit Category Parameter Template"
msgstr "Kategória paraméter sablon szerkesztése"
-#: part/views.py:1301
+#: part/views.py:1236
msgid "Delete Category Parameter Template"
msgstr "Kategória paraméter sablon törlése"
-#: part/views.py:1323
+#: part/views.py:1258
msgid "Added new price break"
msgstr "Új árlépcső hozzáadva"
-#: part/views.py:1399
+#: part/views.py:1334
msgid "Edit Internal Price Break"
msgstr "Belső árlépcső szerkesztése"
-#: part/views.py:1407
+#: part/views.py:1342
msgid "Delete Internal Price Break"
msgstr "Belső árlépcső törlése"
@@ -5574,12 +5601,12 @@ msgid "Stock Item Test Report"
msgstr "Készlet tétel teszt riport"
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:556 stock/templates/stock/item_base.html:151
-#: templates/js/translated/build.js:373 templates/js/translated/build.js:521
-#: templates/js/translated/build.js:919 templates/js/translated/build.js:1295
+#: stock/models.py:608 stock/templates/stock/item_base.html:151
+#: templates/js/translated/build.js:374 templates/js/translated/build.js:522
+#: templates/js/translated/build.js:920 templates/js/translated/build.js:1296
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:99 templates/js/translated/order.js:2062
-#: templates/js/translated/order.js:2151 templates/js/translated/stock.js:423
+#: templates/js/translated/order.js:99 templates/js/translated/order.js:2150
+#: templates/js/translated/order.js:2239 templates/js/translated/stock.js:422
msgid "Serial Number"
msgstr "Sorozatszám"
@@ -5588,19 +5615,19 @@ msgid "Test Results"
msgstr "Teszt eredmények"
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:2052
+#: stock/models.py:2104
msgid "Test"
msgstr "Teszt"
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:2058
+#: stock/models.py:2110
msgid "Result"
msgstr "Eredmény"
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:50
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:924 templates/js/translated/stock.js:2657
+#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2613
msgid "Date"
msgstr "Dátum"
@@ -5618,26 +5645,26 @@ msgid "Installed Items"
msgstr "Beépített tételek"
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756
-#: templates/js/translated/stock.js:2910
+#: templates/js/translated/stock.js:542 templates/js/translated/stock.js:712
+#: templates/js/translated/stock.js:2866
msgid "Serial"
msgstr "Sorozatszám"
-#: stock/api.py:501
+#: stock/api.py:503
msgid "Quantity is required"
msgstr "Mennyiség megadása kötelező"
-#: stock/api.py:508
+#: stock/api.py:510
msgid "Valid part must be supplied"
msgstr "Egy érvényes alkatrészt meg kell adni"
-#: stock/api.py:533
+#: stock/api.py:535
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr "Sorozatszámot nem lehet megadni nem követésre kötelezett alkatrész esetén"
-#: stock/forms.py:74 stock/forms.py:198 stock/models.py:613
+#: stock/forms.py:74 stock/forms.py:198 stock/models.py:665
#: stock/templates/stock/item_base.html:188
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1791
msgid "Expiry Date"
msgstr "Lejárati dátum"
@@ -5677,228 +5704,228 @@ msgstr "Kiszedés megerősítése"
msgid "Confirm removal of installed stock items"
msgstr "Beépített készlet tételek eltávolításának megerősítése"
-#: stock/models.py:62 stock/models.py:650
+#: stock/models.py:62 stock/models.py:702
#: stock/templates/stock/item_base.html:402
msgid "Owner"
msgstr "Tulajdonos"
-#: stock/models.py:63 stock/models.py:651
+#: stock/models.py:63 stock/models.py:703
msgid "Select Owner"
msgstr "Tulajdonos kiválasztása"
-#: stock/models.py:375
+#: stock/models.py:427
msgid "StockItem with this serial number already exists"
msgstr "Létezik már készlet tétel ilyen a sorozatszámmal"
-#: stock/models.py:411
+#: stock/models.py:463
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr "A alkatrész típus ('{pf}') {pe} kell legyen"
-#: stock/models.py:421 stock/models.py:430
+#: stock/models.py:473 stock/models.py:482
msgid "Quantity must be 1 for item with a serial number"
msgstr "Mennyiség 1 kell legyen a sorozatszámmal rendelkező tételnél"
-#: stock/models.py:422
+#: stock/models.py:474
msgid "Serial number cannot be set if quantity greater than 1"
msgstr "Nem lehet sorozatszámot megadni ha a mennyiség több mint egy"
-#: stock/models.py:444
+#: stock/models.py:496
msgid "Item cannot belong to itself"
msgstr "A tétel nem tartozhat saját magához"
-#: stock/models.py:450
+#: stock/models.py:502
msgid "Item must have a build reference if is_building=True"
msgstr "A tételnek kell legyen gyártási azonosítója ha az is_bulding igaz"
-#: stock/models.py:457
+#: stock/models.py:509
msgid "Build reference does not point to the same part object"
msgstr "Gyártási azonosító nem ugyanarra az alkatrész objektumra mutat"
-#: stock/models.py:500
+#: stock/models.py:552
msgid "Parent Stock Item"
msgstr "Szülő készlet tétel"
-#: stock/models.py:509
+#: stock/models.py:561
msgid "Base part"
msgstr "Kiindulási alkatrész"
-#: stock/models.py:517
+#: stock/models.py:569
msgid "Select a matching supplier part for this stock item"
msgstr "Válassz egy egyező beszállítói alkatrészt ehhez a készlet tételhez"
-#: stock/models.py:523 stock/templates/stock/location.html:16
+#: stock/models.py:575 stock/templates/stock/location.html:16
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr "Készlet hely"
-#: stock/models.py:526
+#: stock/models.py:578
msgid "Where is this stock item located?"
msgstr "Hol található ez az alkatrész?"
-#: stock/models.py:533
+#: stock/models.py:585
msgid "Packaging this stock item is stored in"
msgstr "A csomagolása ennek a készlet tételnek itt van tárolva"
-#: stock/models.py:539 stock/templates/stock/item_base.html:277
+#: stock/models.py:591 stock/templates/stock/item_base.html:277
msgid "Installed In"
msgstr "Beépítve ebbe"
-#: stock/models.py:542
+#: stock/models.py:594
msgid "Is this item installed in another item?"
msgstr "Ez a tétel be van építve egy másik tételbe?"
-#: stock/models.py:558
+#: stock/models.py:610
msgid "Serial number for this item"
msgstr "Sorozatszám ehhez a tételhez"
-#: stock/models.py:572
+#: stock/models.py:624
msgid "Batch code for this stock item"
msgstr "Batch kód ehhez a készlet tételhez"
-#: stock/models.py:576
+#: stock/models.py:628
msgid "Stock Quantity"
msgstr "Készlet mennyiség"
-#: stock/models.py:585
+#: stock/models.py:637
msgid "Source Build"
msgstr "Forrás gyártás"
-#: stock/models.py:587
+#: stock/models.py:639
msgid "Build for this stock item"
msgstr "Gyártás ehhez a készlet tételhez"
-#: stock/models.py:598
+#: stock/models.py:650
msgid "Source Purchase Order"
msgstr "Forrás beszerzési rendelés"
-#: stock/models.py:601
+#: stock/models.py:653
msgid "Purchase order for this stock item"
msgstr "Beszerzés ehhez a készlet tételhez"
-#: stock/models.py:607
+#: stock/models.py:659
msgid "Destination Sales Order"
msgstr "Cél vevői rendelés"
-#: stock/models.py:614
+#: stock/models.py:666
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr "Készlet tétel lejárati dátuma. A készlet lejártnak tekinthető ezután a dátum után"
-#: stock/models.py:627
+#: stock/models.py:679
msgid "Delete on deplete"
msgstr "Törlés ha kimerül"
-#: stock/models.py:627
+#: stock/models.py:679
msgid "Delete this Stock Item when stock is depleted"
msgstr "Készlet tétel törlése ha kimerül"
-#: stock/models.py:637 stock/templates/stock/item.html:121
+#: stock/models.py:689 stock/templates/stock/item.html:121
msgid "Stock Item Notes"
msgstr "Készlet tétel megjegyzések"
-#: stock/models.py:646
+#: stock/models.py:698
msgid "Single unit purchase price at time of purchase"
msgstr "Egy egység beszerzési ára a beszerzés időpontjában"
-#: stock/models.py:1171
+#: stock/models.py:1223
msgid "Part is not set as trackable"
msgstr "Az alkatrész nem követésre kötelezett"
-#: stock/models.py:1177
+#: stock/models.py:1229
msgid "Quantity must be integer"
msgstr "Mennyiség egész szám kell legyen"
-#: stock/models.py:1183
+#: stock/models.py:1235
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr "A mennyiség nem lépheti túl a készletet ({n})"
-#: stock/models.py:1186
+#: stock/models.py:1238
msgid "Serial numbers must be a list of integers"
msgstr "A sorozatszám egész számok listája kell legyen"
-#: stock/models.py:1189
+#: stock/models.py:1241
msgid "Quantity does not match serial numbers"
msgstr "A mennyiség nem egyezik a megadott sorozatszámok számával"
-#: stock/models.py:1196
+#: stock/models.py:1248
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr "Ezek a sorozatszámok már léteznek: {exists}"
-#: stock/models.py:1267
+#: stock/models.py:1319
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:1270
+#: stock/models.py:1322
msgid "Stock item is installed in another item"
msgstr "Készlet tétel beépül egy másikba"
-#: stock/models.py:1273
+#: stock/models.py:1325
msgid "Stock item contains other items"
msgstr "A készlet tétel más tételeket tartalmaz"
-#: stock/models.py:1276
+#: stock/models.py:1328
msgid "Stock item has been assigned to a customer"
msgstr "Készlet tétel hozzárendelve egy vevőhöz"
-#: stock/models.py:1279
+#: stock/models.py:1331
msgid "Stock item is currently in production"
msgstr "Készlet tétel gyártás alatt"
-#: stock/models.py:1282
+#: stock/models.py:1334
msgid "Serialized stock cannot be merged"
msgstr "Követésre kötelezett készlet nem vonható össze"
-#: stock/models.py:1289 stock/serializers.py:832
+#: stock/models.py:1341 stock/serializers.py:832
msgid "Duplicate stock items"
msgstr "Duplikált készlet tételek vannak"
-#: stock/models.py:1293
+#: stock/models.py:1345
msgid "Stock items must refer to the same part"
msgstr "A készlet tétel ugyanarra az alkatrészre kell vonatkozzon"
-#: stock/models.py:1297
+#: stock/models.py:1349
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:1301
+#: stock/models.py:1353
msgid "Stock status codes must match"
msgstr "Készlet tételek állapotainak egyeznie kell"
-#: stock/models.py:1473
+#: stock/models.py:1525
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:1972
+#: stock/models.py:2024
msgid "Entry notes"
msgstr "Bejegyzés megjegyzései"
-#: stock/models.py:2029
+#: stock/models.py:2081
msgid "Value must be provided for this test"
msgstr "Ehhez a teszthez meg kell adni értéket"
-#: stock/models.py:2035
+#: stock/models.py:2087
msgid "Attachment must be uploaded for this test"
msgstr "Ehhez a teszthez fel kell tölteni mellékletet"
-#: stock/models.py:2053
+#: stock/models.py:2105
msgid "Test name"
msgstr "Teszt neve"
-#: stock/models.py:2059
+#: stock/models.py:2111
msgid "Test result"
msgstr "Teszt eredménye"
-#: stock/models.py:2065
+#: stock/models.py:2117
msgid "Test output value"
msgstr "Teszt kimeneti értéke"
-#: stock/models.py:2072
+#: stock/models.py:2124
msgid "Test result attachment"
msgstr "Teszt eredmény melléklet"
-#: stock/models.py:2078
+#: stock/models.py:2130
msgid "Test notes"
msgstr "Tesztek megjegyzései"
@@ -5935,7 +5962,7 @@ msgstr "Opcionális megjegyzés mező"
msgid "Serial numbers cannot be assigned to this part"
msgstr "Sorozatszámokat nem lehet hozzárendelni ehhez az alkatrészhez"
-#: stock/serializers.py:363 stock/views.py:1127
+#: stock/serializers.py:363 stock/views.py:1009
msgid "Serial numbers already exist"
msgstr "A sorozatszámok már léteznek"
@@ -6052,11 +6079,11 @@ msgstr "Teszt adatok hozzáadása"
msgid "Installed Stock Items"
msgstr "Beépített készlet tételek"
-#: stock/templates/stock/item.html:147 templates/js/translated/stock.js:3019
+#: stock/templates/stock/item.html:147 templates/js/translated/stock.js:2975
msgid "Install Stock Item"
msgstr "Készlet tétel beépítése"
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1479
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1435
msgid "Add Test Result"
msgstr "Teszt eredmény hozzáadása"
@@ -6070,7 +6097,7 @@ msgstr "Vonalkód leválasztása"
msgid "Link Barcode"
msgstr "Vonalkód hozzárendelése"
-#: stock/templates/stock/item_base.html:46 templates/stock_table.html:24
+#: stock/templates/stock/item_base.html:46 templates/stock_table.html:21
msgid "Scan to Location"
msgstr "Beolvasás helyre"
@@ -6083,15 +6110,15 @@ msgid "Stock adjustment actions"
msgstr "Készlet módosítási műveletek"
#: stock/templates/stock/item_base.html:69
-#: stock/templates/stock/location.html:52 templates/stock_table.html:50
+#: stock/templates/stock/location.html:52 templates/stock_table.html:47
msgid "Count stock"
msgstr "Leltározás"
-#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48
+#: stock/templates/stock/item_base.html:72 templates/stock_table.html:45
msgid "Add stock"
msgstr "Készlet növelése"
-#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49
+#: stock/templates/stock/item_base.html:75 templates/stock_table.html:46
msgid "Remove stock"
msgstr "Készlet csökkentése"
@@ -6100,11 +6127,11 @@ msgid "Serialize stock"
msgstr "Sorozatszámok előállítása"
#: stock/templates/stock/item_base.html:82
-#: stock/templates/stock/location.html:58 templates/stock_table.html:51
+#: stock/templates/stock/location.html:58 templates/stock_table.html:48
msgid "Transfer stock"
msgstr "Készlet áthelyezése"
-#: stock/templates/stock/item_base.html:85 templates/stock_table.html:54
+#: stock/templates/stock/item_base.html:85 templates/stock_table.html:51
msgid "Assign to customer"
msgstr "Vevőhöz rendelése"
@@ -6181,7 +6208,7 @@ msgid "Stale"
msgstr "Állott"
#: stock/templates/stock/item_base.html:201
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1807
msgid "Last Updated"
msgstr "Utoljára módosítva"
@@ -6218,7 +6245,7 @@ msgid "This stock item is serialized - it has a unique serial number and the qua
msgstr "Ez a készlet tétel egyedi követésre kötelezett - egyedi sorozatszámmal rendelkezik így a mennyiség nem módosítható."
#: stock/templates/stock/item_base.html:296
-#: templates/js/translated/build.js:1317
+#: templates/js/translated/build.js:1318
msgid "No location set"
msgstr "Nincs beállítva hely"
@@ -6320,11 +6347,11 @@ msgstr "Alhelyek"
msgid "Stock Locations"
msgstr "Készlethelyek"
-#: stock/templates/stock/location.html:185 templates/stock_table.html:30
+#: stock/templates/stock/location.html:185 templates/stock_table.html:27
msgid "Printing Actions"
msgstr "Nyomtatási műveletek"
-#: stock/templates/stock/location.html:189 templates/stock_table.html:34
+#: stock/templates/stock/location.html:189 templates/stock_table.html:31
msgid "Print labels"
msgstr "Címke nyomtatása"
@@ -6348,7 +6375,7 @@ msgstr "Gyermek tételek"
msgid "The following stock items will be uninstalled"
msgstr "A következő készlet tételek ki lesznek szedve"
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:749
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:631
msgid "Convert Stock Item"
msgstr "Készlet tétel konvertálása"
@@ -6369,95 +6396,95 @@ msgstr "Ez a művelet nem vonható vissza könnyen"
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr "Biztosan törölni akarod ezt a készlettörténeti bejegyzést?"
-#: stock/views.py:181 templates/js/translated/stock.js:139
+#: stock/views.py:152 templates/js/translated/stock.js:138
msgid "Edit Stock Location"
msgstr "Készlet hely szerkesztése"
-#: stock/views.py:288 stock/views.py:728 stock/views.py:854 stock/views.py:1136
+#: stock/views.py:259 stock/views.py:610 stock/views.py:736 stock/views.py:1018
msgid "Owner is required (ownership control is enabled)"
msgstr "Tulajdonos szükséges (tulajdonosok kezelése engedélyezve van)"
-#: stock/views.py:303
+#: stock/views.py:274
msgid "Stock Location QR code"
msgstr "Készlet hely QR kódja"
-#: stock/views.py:322
+#: stock/views.py:293
msgid "Return to Stock"
msgstr "Visszavétel készletre"
-#: stock/views.py:331
+#: stock/views.py:302
msgid "Specify a valid location"
msgstr "Adj meg egy érvényes helyet"
-#: stock/views.py:342
+#: stock/views.py:313
msgid "Stock item returned from customer"
msgstr "Készlet tétel vevőtől visszahozva"
-#: stock/views.py:353
+#: stock/views.py:324
msgid "Delete All Test Data"
msgstr "Minden teszt adat törlése"
-#: stock/views.py:370
+#: stock/views.py:341
msgid "Confirm test data deletion"
msgstr "Teszt adat törlésének megerősítése"
-#: stock/views.py:371
+#: stock/views.py:342
msgid "Check the confirmation box"
msgstr "Klikkeld be a megerősítő mezőt"
-#: stock/views.py:475
+#: stock/views.py:357
msgid "Stock Item QR Code"
msgstr "Készlet tétel QR kódja"
-#: stock/views.py:500
+#: stock/views.py:382
msgid "Uninstall Stock Items"
msgstr "Készlet tétel kiszedése"
-#: stock/views.py:597 templates/js/translated/stock.js:1074
+#: stock/views.py:479 templates/js/translated/stock.js:1030
msgid "Confirm stock adjustment"
msgstr "Készlet módosítás jóváhagyása"
-#: stock/views.py:608
+#: stock/views.py:490
msgid "Uninstalled stock items"
msgstr "Kiszedett készlet tételek"
-#: stock/views.py:630 templates/js/translated/stock.js:332
+#: stock/views.py:512 templates/js/translated/stock.js:331
msgid "Edit Stock Item"
msgstr "Készlet tétel szerkesztése"
-#: stock/views.py:780
+#: stock/views.py:662
msgid "Create new Stock Location"
msgstr "Új készlet hely létrehozása"
-#: stock/views.py:881
+#: stock/views.py:763
msgid "Create new Stock Item"
msgstr "Új készlet tétel létrehozása"
-#: stock/views.py:1023 templates/js/translated/stock.js:312
+#: stock/views.py:905 templates/js/translated/stock.js:311
msgid "Duplicate Stock Item"
msgstr "Készlet tétel másolása"
-#: stock/views.py:1105
+#: stock/views.py:987
msgid "Quantity cannot be negative"
msgstr "A mennyiség nem lehet negatív"
-#: stock/views.py:1205
+#: stock/views.py:1087
msgid "Delete Stock Location"
msgstr "Készlethely törlése"
-#: stock/views.py:1218
+#: stock/views.py:1100
msgid "Delete Stock Item"
msgstr "Készlet tétel törlése"
-#: stock/views.py:1229
+#: stock/views.py:1111
msgid "Delete Stock Tracking Entry"
msgstr "Készlettörténet bejegyzés törlése"
-#: stock/views.py:1236
+#: stock/views.py:1118
msgid "Edit Stock Tracking Entry"
msgstr "Készlettörténet bejegyzés szerkesztése"
-#: stock/views.py:1245
+#: stock/views.py:1127
msgid "Add Stock Tracking Entry"
msgstr "Készlettörténet bejegyzés hozzáadása"
@@ -7381,14 +7408,14 @@ msgid "The following parts are low on required stock"
msgstr "A következő alkatrészek szükséges készlete alacsony"
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1335
+#: templates/js/translated/bom.js:1340
msgid "Required Quantity"
msgstr "Szükséges mennyiség"
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:804 templates/js/translated/build.js:1411
-#: templates/js/translated/build.js:2057
+#: templates/js/translated/bom.js:802 templates/js/translated/build.js:1412
+#: templates/js/translated/build.js:2110
#: templates/js/translated/table_filters.js:178
msgid "Available"
msgstr "Elérhető"
@@ -7580,7 +7607,7 @@ msgstr "Ez törli az összerendelést a készlet tétel és a vonalkód között
msgid "Unlink"
msgstr "Leválasztás"
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:982
msgid "Remove stock item"
msgstr "Készlet tétel törlése"
@@ -7635,12 +7662,12 @@ msgid "Download BOM Template"
msgstr "Alkarészjegyzék sablon letöltése"
#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286
-#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518
+#: templates/js/translated/order.js:429 templates/js/translated/tables.js:53
msgid "Format"
msgstr "Formátum"
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519
+#: templates/js/translated/order.js:430
msgid "Select file format"
msgstr "Fájlfomátum kiválasztása"
@@ -7716,275 +7743,307 @@ msgstr "Helyettesítő hozzáadása"
msgid "Edit BOM Item Substitutes"
msgstr "Alkatrészjegyzék tétel helyettesítők szerkesztése"
-#: templates/js/translated/bom.js:741
+#: templates/js/translated/bom.js:739
msgid "Substitutes Available"
msgstr "Vannak helyettesítők"
-#: templates/js/translated/bom.js:745 templates/js/translated/build.js:1393
+#: templates/js/translated/bom.js:743 templates/js/translated/build.js:1394
msgid "Variant stock allowed"
msgstr "Készletváltozatok engedélyezve"
-#: templates/js/translated/bom.js:750
+#: templates/js/translated/bom.js:748
msgid "Open subassembly"
msgstr "Al-gyártmány megnyitása"
-#: templates/js/translated/bom.js:822
+#: templates/js/translated/bom.js:820
msgid "Substitutes"
msgstr "Helyettesítõk"
-#: templates/js/translated/bom.js:837
+#: templates/js/translated/bom.js:835
msgid "Purchase Price Range"
msgstr "Beszerzési ártartomány"
-#: templates/js/translated/bom.js:844
+#: templates/js/translated/bom.js:842
msgid "Purchase Price Average"
msgstr "Beszerzési átlagár"
-#: templates/js/translated/bom.js:893 templates/js/translated/bom.js:982
+#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980
msgid "View BOM"
msgstr "Alkatrészjegyzék megtekintése"
-#: templates/js/translated/bom.js:953
+#: templates/js/translated/bom.js:951
msgid "Validate BOM Item"
msgstr "Alkatrészjegyzék tétel jóváhagyása"
-#: templates/js/translated/bom.js:955
+#: templates/js/translated/bom.js:953
msgid "This line has been validated"
msgstr "Ez a sor jóvá lett hagyva"
-#: templates/js/translated/bom.js:957
+#: templates/js/translated/bom.js:955
msgid "Edit substitute parts"
msgstr "Helyettesítő alkatrészek szerkesztése"
-#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138
+#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143
msgid "Edit BOM Item"
msgstr "Alkatrészjegyzék tétel szerkesztése"
-#: templates/js/translated/bom.js:961 templates/js/translated/bom.js:1121
+#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126
msgid "Delete BOM Item"
msgstr "Alkatrészjegyzék tétel törlése"
-#: templates/js/translated/bom.js:1060 templates/js/translated/build.js:1137
+#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1138
msgid "No BOM items found"
msgstr "Nem találhatók alkatrészjegyzék tételek"
-#: templates/js/translated/bom.js:1116
+#: templates/js/translated/bom.js:1121
msgid "Are you sure you want to delete this BOM item?"
msgstr "Biztos törölni akarod ezt az alkatrészjegyzék tételt?"
-#: templates/js/translated/bom.js:1318 templates/js/translated/build.js:1377
+#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1378
msgid "Required Part"
msgstr "Szükséges alkatrész"
-#: templates/js/translated/bom.js:1340
+#: templates/js/translated/bom.js:1345
msgid "Inherited from parent BOM"
msgstr "Örökölve a szülő alkatrészjegyzéktől"
-#: templates/js/translated/build.js:85
+#: templates/js/translated/build.js:86
msgid "Edit Build Order"
msgstr "Gyártási utasítás szerkesztése"
-#: templates/js/translated/build.js:119
+#: templates/js/translated/build.js:120
msgid "Create Build Order"
msgstr "Gyártási utasítás létrehozása"
-#: templates/js/translated/build.js:140
+#: templates/js/translated/build.js:141
msgid "Build order is ready to be completed"
msgstr "Gyártási utasítás készen áll a befejezésre"
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:146
msgid "Build Order is incomplete"
msgstr "Gyártási utasítás befejezetlen"
-#: templates/js/translated/build.js:173
+#: templates/js/translated/build.js:174
msgid "Complete Build Order"
msgstr "Gyártási utasítás befejezése"
-#: templates/js/translated/build.js:214 templates/js/translated/stock.js:92
-#: templates/js/translated/stock.js:181
+#: templates/js/translated/build.js:215 templates/js/translated/stock.js:91
+#: templates/js/translated/stock.js:180
msgid "Next available serial number"
msgstr "Következő szabad sorozatszám"
-#: templates/js/translated/build.js:216 templates/js/translated/stock.js:94
-#: templates/js/translated/stock.js:183
+#: templates/js/translated/build.js:217 templates/js/translated/stock.js:93
+#: templates/js/translated/stock.js:182
msgid "Latest serial number"
msgstr "Legutolsó sorozatszám"
-#: templates/js/translated/build.js:225
+#: templates/js/translated/build.js:226
msgid "The Bill of Materials contains trackable parts"
msgstr "Az alkatrészjegyzék követésre kötelezett alkatrészeket tartalmaz"
-#: templates/js/translated/build.js:226
+#: templates/js/translated/build.js:227
msgid "Build outputs must be generated individually"
msgstr "A gyártási kimeneteket egyesével kell előállítani"
-#: templates/js/translated/build.js:234
+#: templates/js/translated/build.js:235
msgid "Trackable parts can have serial numbers specified"
msgstr "A követésre kötelezett alkatrészekhez sorozatszámot lehet rendelni"
-#: templates/js/translated/build.js:235
+#: templates/js/translated/build.js:236
msgid "Enter serial numbers to generate multiple single build outputs"
msgstr "Adj meg sorozatszámokat a több egyedi gyártási kimenet létrehozásához"
-#: templates/js/translated/build.js:242
+#: templates/js/translated/build.js:243
msgid "Create Build Output"
msgstr "Gyártási kimenet létrehozása"
-#: templates/js/translated/build.js:273
+#: templates/js/translated/build.js:274
msgid "Allocate stock items to this build output"
msgstr "Készlet tételek foglalása ehhez a gyártási kimenethez"
-#: templates/js/translated/build.js:284
+#: templates/js/translated/build.js:285
msgid "Unallocate stock from build output"
msgstr "Készlet felszabadítása a gyártási kimenetből"
-#: templates/js/translated/build.js:293
+#: templates/js/translated/build.js:294
msgid "Complete build output"
msgstr "Gyártási kimenet befejezése"
-#: templates/js/translated/build.js:301
+#: templates/js/translated/build.js:302
msgid "Delete build output"
msgstr "Gyártási kimenet törlése"
-#: templates/js/translated/build.js:324
+#: templates/js/translated/build.js:325
msgid "Are you sure you wish to unallocate stock items from this build?"
msgstr "Biztosan szeretnéd a készlet tételeket felszabadítani ebből a gyártási utasításból?"
-#: templates/js/translated/build.js:342
+#: templates/js/translated/build.js:343
msgid "Unallocate Stock Items"
msgstr "Készlet tételek felszabadítása"
-#: templates/js/translated/build.js:360 templates/js/translated/build.js:508
+#: templates/js/translated/build.js:361 templates/js/translated/build.js:509
msgid "Select Build Outputs"
msgstr "Gyártási kimenetek kiválasztása"
-#: templates/js/translated/build.js:361 templates/js/translated/build.js:509
+#: templates/js/translated/build.js:362 templates/js/translated/build.js:510
msgid "At least one build output must be selected"
msgstr "Legalább egy gyártási kimenetet ki kell választani"
-#: templates/js/translated/build.js:415 templates/js/translated/build.js:563
+#: templates/js/translated/build.js:416 templates/js/translated/build.js:564
msgid "Output"
msgstr "Kimenet"
-#: templates/js/translated/build.js:431
+#: templates/js/translated/build.js:432
msgid "Complete Build Outputs"
msgstr "Gyártási kimenetek befejezése"
-#: templates/js/translated/build.js:576
+#: templates/js/translated/build.js:577
msgid "Delete Build Outputs"
msgstr "Gyártási kimenetek törlése"
-#: templates/js/translated/build.js:665
+#: templates/js/translated/build.js:666
msgid "No build order allocations found"
msgstr "Nincs gyártási utasításhoz történő foglalás"
-#: templates/js/translated/build.js:703 templates/js/translated/order.js:1965
+#: templates/js/translated/build.js:704 templates/js/translated/order.js:2053
msgid "Location not specified"
msgstr "Hely nincs megadva"
-#: templates/js/translated/build.js:885
+#: templates/js/translated/build.js:886
msgid "No active build outputs found"
msgstr "Nem található aktív gyártási kimenet"
-#: templates/js/translated/build.js:1334 templates/js/translated/build.js:2068
-#: templates/js/translated/order.js:2099
+#: templates/js/translated/build.js:1335 templates/js/translated/build.js:2121
+#: templates/js/translated/order.js:2187
msgid "Edit stock allocation"
msgstr "Készlet foglalások szerkesztése"
-#: templates/js/translated/build.js:1336 templates/js/translated/build.js:2069
-#: templates/js/translated/order.js:2100
+#: templates/js/translated/build.js:1337 templates/js/translated/build.js:2122
+#: templates/js/translated/order.js:2188
msgid "Delete stock allocation"
msgstr "Készlet foglalások törlése"
-#: templates/js/translated/build.js:1354
+#: templates/js/translated/build.js:1355
msgid "Edit Allocation"
msgstr "Foglalás szerkesztése"
-#: templates/js/translated/build.js:1364
+#: templates/js/translated/build.js:1365
msgid "Remove Allocation"
msgstr "Foglalás törlése"
-#: templates/js/translated/build.js:1389
+#: templates/js/translated/build.js:1390
msgid "Substitute parts available"
msgstr "Vannak helyettesítő alkatrészek"
-#: templates/js/translated/build.js:1406
+#: templates/js/translated/build.js:1407
msgid "Quantity Per"
msgstr "Mennyiség per"
-#: templates/js/translated/build.js:1416 templates/js/translated/build.js:1656
-#: templates/js/translated/build.js:2064 templates/js/translated/order.js:2366
+#: templates/js/translated/build.js:1417 templates/js/translated/build.js:1667
+#: templates/js/translated/build.js:2117 templates/js/translated/order.js:2454
msgid "Allocated"
msgstr "Lefoglalva"
-#: templates/js/translated/build.js:1472 templates/js/translated/order.js:2446
+#: templates/js/translated/build.js:1473 templates/js/translated/order.js:2534
msgid "Build stock"
msgstr "Gyártási készlet"
-#: templates/js/translated/build.js:1476 templates/stock_table.html:53
+#: templates/js/translated/build.js:1477 templates/stock_table.html:50
msgid "Order stock"
msgstr "Készlet rendelés"
-#: templates/js/translated/build.js:1479 templates/js/translated/order.js:2439
+#: templates/js/translated/build.js:1480 templates/js/translated/order.js:2527
msgid "Allocate stock"
msgstr "Lefoglalt készlet"
-#: templates/js/translated/build.js:1558 templates/js/translated/order.js:1616
-msgid "Specify stock allocation quantity"
-msgstr "Készlet foglalási mennyiség megadása"
-
-#: templates/js/translated/build.js:1629 templates/js/translated/label.js:134
-#: templates/js/translated/order.js:1667 templates/js/translated/report.js:225
+#: templates/js/translated/build.js:1519 templates/js/translated/label.js:134
+#: templates/js/translated/order.js:1755 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr "Kiválasztott alkatrészek"
-#: templates/js/translated/build.js:1630 templates/js/translated/order.js:1668
+#: templates/js/translated/build.js:1520 templates/js/translated/order.js:1756
msgid "You must select at least one part to allocate"
msgstr "Legalább egy alkatrész választása szükséges a foglaláshoz"
-#: templates/js/translated/build.js:1644 templates/js/translated/order.js:1682
+#: templates/js/translated/build.js:1569 templates/js/translated/order.js:1704
+msgid "Specify stock allocation quantity"
+msgstr "Készlet foglalási mennyiség megadása"
+
+#: templates/js/translated/build.js:1640
+msgid "All Parts Allocated"
+msgstr "Minden alkatrész lefoglalva"
+
+#: templates/js/translated/build.js:1641
+msgid "All selected parts have been fully allocated"
+msgstr "Minden kiválasztott alkatrész teljesen lefoglalva"
+
+#: templates/js/translated/build.js:1655 templates/js/translated/order.js:1770
msgid "Select source location (leave blank to take from all locations)"
msgstr "Válassz forrás helyet (vagy hagyd üresen ha bárhonnan)"
-#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1717
+#: templates/js/translated/build.js:1684 templates/js/translated/order.js:1805
msgid "Confirm stock allocation"
msgstr "Készlet foglalás megerősítése"
-#: templates/js/translated/build.js:1674
+#: templates/js/translated/build.js:1685
msgid "Allocate Stock Items to Build Order"
msgstr "Készlet foglalása a gyártási utasításhoz"
-#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1730
+#: templates/js/translated/build.js:1696 templates/js/translated/order.js:1818
msgid "No matching stock locations"
msgstr "Nincs egyező készlethely"
-#: templates/js/translated/build.js:1757 templates/js/translated/order.js:1807
+#: templates/js/translated/build.js:1768 templates/js/translated/order.js:1895
msgid "No matching stock items"
msgstr "Nincs egyező készlet"
-#: templates/js/translated/build.js:1875
+#: templates/js/translated/build.js:1865
+msgid "Automatic Stock Allocation"
+msgstr "Automatikus készlet foglalás"
+
+#: templates/js/translated/build.js:1866
+msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
+msgstr "A készlet automatikusan lefoglalásra került ehhez a gyártási utasításhoz, a megadott feltételek szerint"
+
+#: templates/js/translated/build.js:1868
+msgid "If a location is specifed, stock will only be allocated from that location"
+msgstr "Ha egy készlet hely meg van adva, akkor készlet csak arról a helyről lesz foglalva"
+
+#: templates/js/translated/build.js:1869
+msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
+msgstr "Ha a készlet helyettesíthetőnek minősül, akkor az első rendelkezésre álló helyről lesz lefoglalva"
+
+#: templates/js/translated/build.js:1870
+msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
+msgstr "Ha a helyettesítő készlet engedélyezve van, akkor ott az lesz használva ha az elsődleges alkatrésznek nincs készlete"
+
+#: templates/js/translated/build.js:1890
+msgid "Allocate Stock Items"
+msgstr "Készlet tételek foglalása"
+
+#: templates/js/translated/build.js:1928
msgid "No builds matching query"
msgstr "Nincs a lekérdezéssel egyező gyártási utasítás"
-#: templates/js/translated/build.js:1892 templates/js/translated/part.js:1235
-#: templates/js/translated/part.js:1646 templates/js/translated/stock.js:1643
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/build.js:1945 templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1647 templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:2567
msgid "Select"
msgstr "Kiválaszt"
-#: templates/js/translated/build.js:1912
+#: templates/js/translated/build.js:1965
msgid "Build order is overdue"
msgstr "Gyártási utasítás megkésett"
-#: templates/js/translated/build.js:1976 templates/js/translated/stock.js:2823
+#: templates/js/translated/build.js:2029 templates/js/translated/stock.js:2779
msgid "No user information"
msgstr "Nincs felhasználói információ"
-#: templates/js/translated/build.js:1988
+#: templates/js/translated/build.js:2041
msgid "No information"
msgstr "Nincs információ"
-#: templates/js/translated/build.js:2045
+#: templates/js/translated/build.js:2098
msgid "No parts allocated for"
msgstr "Nincs lefoglalt alkatrész ehhez"
@@ -8049,34 +8108,34 @@ msgid "No manufacturer parts found"
msgstr "Nincs gyártói alkatrész"
#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:517
-#: templates/js/translated/part.js:602
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:518
+#: templates/js/translated/part.js:603
msgid "Template part"
msgstr "Sablon alkatrész"
#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:521
-#: templates/js/translated/part.js:606
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:522
+#: templates/js/translated/part.js:607
msgid "Assembled part"
msgstr "Gyártmány alkatrész"
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:696
+#: templates/js/translated/company.js:631 templates/js/translated/part.js:697
msgid "No parameters found"
msgstr "Nem található paraméter"
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:738
+#: templates/js/translated/company.js:668 templates/js/translated/part.js:739
msgid "Edit parameter"
msgstr "Paraméter szerkesztése"
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:739
+#: templates/js/translated/company.js:669 templates/js/translated/part.js:740
msgid "Delete parameter"
msgstr "Paraméter törlése"
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:756
+#: templates/js/translated/company.js:688 templates/js/translated/part.js:757
msgid "Edit Parameter"
msgstr "Paraméter szerkesztése"
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:768
+#: templates/js/translated/company.js:699 templates/js/translated/part.js:769
msgid "Delete Parameter"
msgstr "Paraméter törlése"
@@ -8085,12 +8144,12 @@ msgid "No supplier parts found"
msgstr "Nincs beszállítói alkatrész"
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:429
+#: templates/js/translated/filters.js:441
msgid "true"
msgstr "igaz"
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:430
+#: templates/js/translated/filters.js:442
msgid "false"
msgstr "hamis"
@@ -8098,19 +8157,23 @@ msgstr "hamis"
msgid "Select filter"
msgstr "Szűrők kiválasztása"
-#: templates/js/translated/filters.js:286
+#: templates/js/translated/filters.js:288
+msgid "Download data"
+msgstr "Adatok letöltése"
+
+#: templates/js/translated/filters.js:291
msgid "Reload data"
msgstr "Adatok frissítése"
-#: templates/js/translated/filters.js:290
+#: templates/js/translated/filters.js:295
msgid "Add new filter"
msgstr "Új szűrő hozzáadása"
-#: templates/js/translated/filters.js:293
+#: templates/js/translated/filters.js:298
msgid "Clear all filters"
msgstr "Összes szűrő törlése"
-#: templates/js/translated/filters.js:338
+#: templates/js/translated/filters.js:350
msgid "Create filter"
msgstr "Szűrő létrehozása"
@@ -8181,7 +8244,7 @@ msgid "NO"
msgstr "NEM"
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1050
+#: templates/js/translated/stock.js:1006
msgid "Select Stock Items"
msgstr "Készlet tételek kiválasztása"
@@ -8354,206 +8417,214 @@ msgstr "Vevő hozzáadása"
msgid "Create Sales Order"
msgstr "Vevői rendelés létrehozása"
-#: templates/js/translated/order.js:366
+#: templates/js/translated/order.js:426
msgid "Export Order"
msgstr "Rendelés exportálása"
-#: templates/js/translated/order.js:460
+#: templates/js/translated/order.js:520
msgid "Select Line Items"
msgstr "Sortételek kiválasztása"
-#: templates/js/translated/order.js:461
+#: templates/js/translated/order.js:521
msgid "At least one line item must be selected"
msgstr "Legalább egy sortételt ki kell választani"
-#: templates/js/translated/order.js:481 templates/js/translated/order.js:580
+#: templates/js/translated/order.js:541 templates/js/translated/order.js:640
msgid "Add batch code"
msgstr "Batch kód hozzáadása"
-#: templates/js/translated/order.js:487 templates/js/translated/order.js:591
+#: templates/js/translated/order.js:547 templates/js/translated/order.js:651
msgid "Add serial numbers"
msgstr "Sorozatszám hozzáadása"
-#: templates/js/translated/order.js:499
+#: templates/js/translated/order.js:559
msgid "Quantity to receive"
msgstr "Érkező mennyiség"
-#: templates/js/translated/order.js:563 templates/js/translated/stock.js:2263
+#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2219
msgid "Stock Status"
msgstr "Készlet állapota"
-#: templates/js/translated/order.js:652
+#: templates/js/translated/order.js:712
msgid "Order Code"
msgstr "Rendelési kód"
-#: templates/js/translated/order.js:653
+#: templates/js/translated/order.js:713
msgid "Ordered"
msgstr "Megrendelve"
-#: templates/js/translated/order.js:655
+#: templates/js/translated/order.js:715
msgid "Quantity to Receive"
msgstr "Érkező mennyiség"
-#: templates/js/translated/order.js:674
+#: templates/js/translated/order.js:734
msgid "Confirm receipt of items"
msgstr "Bevételezés megerősítése"
-#: templates/js/translated/order.js:675
+#: templates/js/translated/order.js:735
msgid "Receive Purchase Order Items"
msgstr "Beszerzési rendelés tételeinek bevételezése"
-#: templates/js/translated/order.js:865 templates/js/translated/part.js:809
+#: templates/js/translated/order.js:925 templates/js/translated/part.js:810
msgid "No purchase orders found"
msgstr "Nem található beszerzési rendelés"
-#: templates/js/translated/order.js:890 templates/js/translated/order.js:1338
+#: templates/js/translated/order.js:950 templates/js/translated/order.js:1426
msgid "Order is overdue"
msgstr "Rendelés megkésett"
-#: templates/js/translated/order.js:1018 templates/js/translated/order.js:2496
+#: templates/js/translated/order.js:1074 templates/js/translated/order.js:2585
+msgid "Duplicate Line Item"
+msgstr "Sortétel másolása"
+
+#: templates/js/translated/order.js:1104 templates/js/translated/order.js:2607
msgid "Edit Line Item"
msgstr "Sortétel szerkesztése"
-#: templates/js/translated/order.js:1030 templates/js/translated/order.js:2507
+#: templates/js/translated/order.js:1117 templates/js/translated/order.js:2618
msgid "Delete Line Item"
msgstr "Sortétel törlése"
-#: templates/js/translated/order.js:1073
+#: templates/js/translated/order.js:1160
msgid "No line items found"
msgstr "Nem találhatók sortételek"
-#: templates/js/translated/order.js:1100 templates/js/translated/order.js:2255
+#: templates/js/translated/order.js:1187 templates/js/translated/order.js:2343
msgid "Total"
msgstr "Összesen"
-#: templates/js/translated/order.js:1154 templates/js/translated/order.js:2280
-#: templates/js/translated/part.js:1863 templates/js/translated/part.js:2074
+#: templates/js/translated/order.js:1241 templates/js/translated/order.js:2368
+#: templates/js/translated/part.js:1864 templates/js/translated/part.js:2075
msgid "Unit Price"
msgstr "Egységár"
-#: templates/js/translated/order.js:1169 templates/js/translated/order.js:2296
+#: templates/js/translated/order.js:1256 templates/js/translated/order.js:2384
msgid "Total Price"
msgstr "Teljes ár"
-#: templates/js/translated/order.js:1210 templates/js/translated/order.js:2338
-#: templates/js/translated/part.js:918
+#: templates/js/translated/order.js:1297 templates/js/translated/order.js:2426
+#: templates/js/translated/part.js:919
msgid "This line item is overdue"
msgstr "Ez a sortétel megkésett"
-#: templates/js/translated/order.js:1269 templates/js/translated/part.js:964
+#: templates/js/translated/order.js:1356 templates/js/translated/part.js:965
msgid "Receive line item"
-msgstr "Sorétel bevételezése"
+msgstr "Sortétel bevételezése"
-#: templates/js/translated/order.js:1273 templates/js/translated/order.js:2452
+#: templates/js/translated/order.js:1360 templates/js/translated/order.js:2540
+msgid "Duplicate line item"
+msgstr "Sortétel másolása"
+
+#: templates/js/translated/order.js:1361 templates/js/translated/order.js:2541
msgid "Edit line item"
msgstr "Sortétel szerkesztése"
-#: templates/js/translated/order.js:1274 templates/js/translated/order.js:2456
+#: templates/js/translated/order.js:1362 templates/js/translated/order.js:2545
msgid "Delete line item"
msgstr "Sortétel törlése"
-#: templates/js/translated/order.js:1314
+#: templates/js/translated/order.js:1402
msgid "No sales orders found"
msgstr "Nem található vevői rendelés"
-#: templates/js/translated/order.js:1352
+#: templates/js/translated/order.js:1440
msgid "Invalid Customer"
msgstr "Érvénytelen vevő"
-#: templates/js/translated/order.js:1439
+#: templates/js/translated/order.js:1527
msgid "Edit shipment"
msgstr "Szállítmány szerkesztése"
-#: templates/js/translated/order.js:1442
+#: templates/js/translated/order.js:1530
msgid "Complete shipment"
msgstr "Szállítmány kész"
-#: templates/js/translated/order.js:1447
+#: templates/js/translated/order.js:1535
msgid "Delete shipment"
msgstr "Szállítmány törlése"
-#: templates/js/translated/order.js:1467
+#: templates/js/translated/order.js:1555
msgid "Edit Shipment"
msgstr "Szállítmány szerkesztése"
-#: templates/js/translated/order.js:1484
+#: templates/js/translated/order.js:1572
msgid "Delete Shipment"
msgstr "Szállítmány törlése"
-#: templates/js/translated/order.js:1518
+#: templates/js/translated/order.js:1606
msgid "No matching shipments found"
msgstr "Nincs egyező szállímány"
-#: templates/js/translated/order.js:1528
+#: templates/js/translated/order.js:1616
msgid "Shipment Reference"
msgstr "Szállítmány azonosító"
-#: templates/js/translated/order.js:1552
+#: templates/js/translated/order.js:1640
msgid "Not shipped"
msgstr "Nincs szállítva"
-#: templates/js/translated/order.js:1558
+#: templates/js/translated/order.js:1646
msgid "Tracking"
msgstr "Követés"
-#: templates/js/translated/order.js:1718
+#: templates/js/translated/order.js:1806
msgid "Allocate Stock Items to Sales Order"
msgstr "Készlet foglalása a vevői rendeléshez"
-#: templates/js/translated/order.js:1926
+#: templates/js/translated/order.js:2014
msgid "No sales order allocations found"
msgstr "Nincs vevői rendeléshez történő foglalás"
-#: templates/js/translated/order.js:2015
+#: templates/js/translated/order.js:2103
msgid "Edit Stock Allocation"
msgstr "Készlet foglalások szerkesztése"
-#: templates/js/translated/order.js:2032
+#: templates/js/translated/order.js:2120
msgid "Confirm Delete Operation"
msgstr "Törlési művelet megerősítése"
-#: templates/js/translated/order.js:2033
+#: templates/js/translated/order.js:2121
msgid "Delete Stock Allocation"
msgstr "Készlet foglalások törlése"
-#: templates/js/translated/order.js:2076 templates/js/translated/order.js:2165
-#: templates/js/translated/stock.js:1559
+#: templates/js/translated/order.js:2164 templates/js/translated/order.js:2253
+#: templates/js/translated/stock.js:1515
msgid "Shipped to customer"
msgstr "Vevőnek kiszállítva"
-#: templates/js/translated/order.js:2084 templates/js/translated/order.js:2174
+#: templates/js/translated/order.js:2172 templates/js/translated/order.js:2262
msgid "Stock location not specified"
msgstr "Készlethely nincs megadva"
-#: templates/js/translated/order.js:2436
+#: templates/js/translated/order.js:2524
msgid "Allocate serial numbers"
msgstr "Sorozatszámok kiosztása"
-#: templates/js/translated/order.js:2442
+#: templates/js/translated/order.js:2530
msgid "Purchase stock"
msgstr "Készletrendelés"
-#: templates/js/translated/order.js:2449 templates/js/translated/order.js:2616
+#: templates/js/translated/order.js:2537 templates/js/translated/order.js:2727
msgid "Calculate price"
msgstr "Árszámítás"
-#: templates/js/translated/order.js:2460
+#: templates/js/translated/order.js:2549
msgid "Cannot be deleted as items have been shipped"
msgstr "Nem törölhető mivel a tételek ki lettek szállítva"
-#: templates/js/translated/order.js:2463
+#: templates/js/translated/order.js:2552
msgid "Cannot be deleted as items have been allocated"
msgstr "Nem törölhető mivel tételek vannak lefoglalva"
-#: templates/js/translated/order.js:2522
+#: templates/js/translated/order.js:2633
msgid "Allocate Serial Numbers"
msgstr "Sorozatszámok kiosztása"
-#: templates/js/translated/order.js:2624
+#: templates/js/translated/order.js:2735
msgid "Update Unit Price"
msgstr "Egységár módosítása"
-#: templates/js/translated/order.js:2638
+#: templates/js/translated/order.js:2749
msgid "No matching line items"
msgstr "Nincs egyező sortétel"
@@ -8677,117 +8748,117 @@ msgstr "Alkatrészjegyzék jóváhagyása"
msgid "Validated Bill of Materials"
msgstr "Alkatrészjegyzék jóvá lett hagyva"
-#: templates/js/translated/part.js:481
+#: templates/js/translated/part.js:482
msgid "Copy Bill of Materials"
msgstr "Alkatrészjegyzék másolása"
-#: templates/js/translated/part.js:509 templates/js/translated/part.js:594
+#: templates/js/translated/part.js:510 templates/js/translated/part.js:595
msgid "Trackable part"
msgstr "Követésre kötelezett alkatrész"
-#: templates/js/translated/part.js:513 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:514 templates/js/translated/part.js:599
msgid "Virtual part"
msgstr "Virtuális alkatrész"
-#: templates/js/translated/part.js:525
+#: templates/js/translated/part.js:526
msgid "Subscribed part"
msgstr "Értesítésre beállított alkatrész"
-#: templates/js/translated/part.js:529
+#: templates/js/translated/part.js:530
msgid "Salable part"
msgstr "Értékesíthető alkatrész"
-#: templates/js/translated/part.js:644
+#: templates/js/translated/part.js:645
msgid "No variants found"
msgstr "Nincs több változat"
-#: templates/js/translated/part.js:1034
+#: templates/js/translated/part.js:1035
msgid "Delete part relationship"
msgstr "Alkatrész kapcsolatok törlése"
-#: templates/js/translated/part.js:1058
+#: templates/js/translated/part.js:1059
msgid "Delete Part Relationship"
msgstr "Alkatrész kapcsolatok törlése"
-#: templates/js/translated/part.js:1125 templates/js/translated/part.js:1385
+#: templates/js/translated/part.js:1126 templates/js/translated/part.js:1386
msgid "No parts found"
msgstr "Nincs alkatrész"
-#: templates/js/translated/part.js:1295
+#: templates/js/translated/part.js:1296
msgid "No category"
msgstr "Nincs kategória"
-#: templates/js/translated/part.js:1318
+#: templates/js/translated/part.js:1319
#: templates/js/translated/table_filters.js:425
msgid "Low stock"
msgstr "Alacsony készlet"
-#: templates/js/translated/part.js:1409 templates/js/translated/part.js:1581
-#: templates/js/translated/stock.js:2572
+#: templates/js/translated/part.js:1410 templates/js/translated/part.js:1582
+#: templates/js/translated/stock.js:2528
msgid "Display as list"
msgstr "Megjelenítés listaként"
-#: templates/js/translated/part.js:1425
+#: templates/js/translated/part.js:1426
msgid "Display as grid"
msgstr "Megjelenítés rácsnézetként"
-#: templates/js/translated/part.js:1600 templates/js/translated/stock.js:2591
+#: templates/js/translated/part.js:1601 templates/js/translated/stock.js:2547
msgid "Display as tree"
msgstr "Megjelenítés fában"
-#: templates/js/translated/part.js:1664
+#: templates/js/translated/part.js:1665
msgid "Subscribed category"
msgstr "Értesítésre beállított kategória"
-#: templates/js/translated/part.js:1678 templates/js/translated/stock.js:2635
+#: templates/js/translated/part.js:1679 templates/js/translated/stock.js:2591
msgid "Path"
msgstr "Elérési út"
-#: templates/js/translated/part.js:1722
+#: templates/js/translated/part.js:1723
msgid "No test templates matching query"
msgstr "Nincs a lekérdezéssel egyező teszt sablon"
-#: templates/js/translated/part.js:1773 templates/js/translated/stock.js:1270
+#: templates/js/translated/part.js:1774 templates/js/translated/stock.js:1226
msgid "Edit test result"
msgstr "Teszt eredmény szerkesztése"
-#: templates/js/translated/part.js:1774 templates/js/translated/stock.js:1271
-#: templates/js/translated/stock.js:1517
+#: templates/js/translated/part.js:1775 templates/js/translated/stock.js:1227
+#: templates/js/translated/stock.js:1473
msgid "Delete test result"
msgstr "Teszt eredmény törlése"
-#: templates/js/translated/part.js:1780
+#: templates/js/translated/part.js:1781
msgid "This test is defined for a parent part"
msgstr "Ez a teszt a szülő alkatrészhez lett felvéve"
-#: templates/js/translated/part.js:1802
+#: templates/js/translated/part.js:1803
msgid "Edit Test Result Template"
msgstr "Teszt eredmény sablon szerkesztése"
-#: templates/js/translated/part.js:1816
+#: templates/js/translated/part.js:1817
msgid "Delete Test Result Template"
msgstr "Teszt eredmény sablon törlése"
-#: templates/js/translated/part.js:1841
+#: templates/js/translated/part.js:1842
#, python-brace-format
msgid "No ${human_name} information found"
msgstr "Nincs ${human_name} információ"
-#: templates/js/translated/part.js:1896
+#: templates/js/translated/part.js:1897
#, python-brace-format
msgid "Edit ${human_name}"
msgstr "${human_name} szerkesztése"
-#: templates/js/translated/part.js:1897
+#: templates/js/translated/part.js:1898
#, python-brace-format
msgid "Delete ${human_name}"
msgstr "${human_name} törlése"
-#: templates/js/translated/part.js:1998
+#: templates/js/translated/part.js:1999
msgid "Single Price"
msgstr "Egységes ár"
-#: templates/js/translated/part.js:2017
+#: templates/js/translated/part.js:2018
msgid "Single Price Difference"
msgstr "Egységes ár különbség"
@@ -8861,368 +8932,356 @@ msgstr "Vevői rendelések kiválasztása"
msgid "Sales Order(s) must be selected before printing report"
msgstr "Vevői rendelés(eke)t ki kell választani a riport nyomtatás előtt"
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr "Készlet tétel sorszámozása"
-#: templates/js/translated/stock.js:102
+#: templates/js/translated/stock.js:101
msgid "Confirm Stock Serialization"
msgstr "Készlet sorozatszámozás megerősítése"
-#: templates/js/translated/stock.js:111
+#: templates/js/translated/stock.js:110
msgid "Parent stock location"
msgstr "Felsőbb szintű készlet hely"
-#: templates/js/translated/stock.js:154
+#: templates/js/translated/stock.js:153
msgid "New Stock Location"
msgstr "Új készlet hely"
-#: templates/js/translated/stock.js:194
+#: templates/js/translated/stock.js:193
msgid "This part cannot be serialized"
msgstr "Ezt az alkatrészt nem lehet sorozatszámozni"
-#: templates/js/translated/stock.js:233
+#: templates/js/translated/stock.js:232
msgid "Enter initial quantity for this stock item"
msgstr "Add meg a kezdeti mennyiséget ehhez a készlet tételhez"
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/stock.js:238
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr "Add meg az új készlet tételhez tartozó sorozatszámokat (vagy hagyd üresen)"
-#: templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:381
msgid "Created new stock item"
msgstr "Készlet tétel létrehozva"
-#: templates/js/translated/stock.js:395
+#: templates/js/translated/stock.js:394
msgid "Created multiple stock items"
msgstr "Több készlet tétel létre lett hozva"
-#: templates/js/translated/stock.js:420
+#: templates/js/translated/stock.js:419
msgid "Find Serial Number"
msgstr "Sorozatszám keresése"
-#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425
+#: templates/js/translated/stock.js:423 templates/js/translated/stock.js:424
msgid "Enter serial number"
msgstr "Sorozatszám megadása"
-#: templates/js/translated/stock.js:441
+#: templates/js/translated/stock.js:440
msgid "Enter a serial number"
msgstr "Adj meg egy sorozatszámot"
-#: templates/js/translated/stock.js:461
+#: templates/js/translated/stock.js:460
msgid "No matching serial number"
msgstr "Nincs egyező sorozatszám"
-#: templates/js/translated/stock.js:470
+#: templates/js/translated/stock.js:469
msgid "More than one matching result found"
msgstr "Több egyező eredmény is van"
-#: templates/js/translated/stock.js:515
-msgid "Export Stock"
-msgstr "Készlet exportálása"
-
-#: templates/js/translated/stock.js:526
-msgid "Include Sublocations"
-msgstr "Alhelyekkel együtt"
-
-#: templates/js/translated/stock.js:527
-msgid "Include stock items in sublocations"
-msgstr "Alhelyeken lévő készlettel együtt"
-
-#: templates/js/translated/stock.js:636
+#: templates/js/translated/stock.js:592
msgid "Confirm stock assignment"
msgstr "Készlet hozzárendelés jóváhagyása"
-#: templates/js/translated/stock.js:637
+#: templates/js/translated/stock.js:593
msgid "Assign Stock to Customer"
msgstr "Készlet vevőhöz rendelése"
-#: templates/js/translated/stock.js:714
+#: templates/js/translated/stock.js:670
msgid "Warning: Merge operation cannot be reversed"
msgstr "Figyelem: az összevonási művelet nem vonható vissza"
-#: templates/js/translated/stock.js:715
+#: templates/js/translated/stock.js:671
msgid "Some information will be lost when merging stock items"
msgstr "Némi információ elveszik a készlet összevonás során"
-#: templates/js/translated/stock.js:717
+#: templates/js/translated/stock.js:673
msgid "Stock transaction history will be deleted for merged items"
msgstr "A készlettörténet törölve lesz az összevont tételeknél"
-#: templates/js/translated/stock.js:718
+#: templates/js/translated/stock.js:674
msgid "Supplier part information will be deleted for merged items"
msgstr "A beszállítói alkatrész információk törlődnek az összevont tételeknél"
-#: templates/js/translated/stock.js:804
+#: templates/js/translated/stock.js:760
msgid "Confirm stock item merge"
msgstr "Készlet összevonás megerősítése"
-#: templates/js/translated/stock.js:805
+#: templates/js/translated/stock.js:761
msgid "Merge Stock Items"
msgstr "Készlet tételek összevonása"
-#: templates/js/translated/stock.js:900
+#: templates/js/translated/stock.js:856
msgid "Transfer Stock"
msgstr "Készlet áthelyezése"
-#: templates/js/translated/stock.js:901
+#: templates/js/translated/stock.js:857
msgid "Move"
msgstr "Áthelyezés"
-#: templates/js/translated/stock.js:907
+#: templates/js/translated/stock.js:863
msgid "Count Stock"
msgstr "Leltározás"
-#: templates/js/translated/stock.js:908
+#: templates/js/translated/stock.js:864
msgid "Count"
msgstr "Mennyiség"
-#: templates/js/translated/stock.js:912
+#: templates/js/translated/stock.js:868
msgid "Remove Stock"
msgstr "Készlet csökkentése"
-#: templates/js/translated/stock.js:913
+#: templates/js/translated/stock.js:869
msgid "Take"
msgstr "Kivesz"
-#: templates/js/translated/stock.js:917
+#: templates/js/translated/stock.js:873
msgid "Add Stock"
msgstr "Készlet növelése"
-#: templates/js/translated/stock.js:918 users/models.py:213
+#: templates/js/translated/stock.js:874 users/models.py:213
msgid "Add"
msgstr "Hozzáad"
-#: templates/js/translated/stock.js:922
+#: templates/js/translated/stock.js:878
msgid "Delete Stock"
msgstr "Készlet törlése"
-#: templates/js/translated/stock.js:1011
+#: templates/js/translated/stock.js:967
msgid "Quantity cannot be adjusted for serialized stock"
msgstr "Egyedi követésre kötelezett tételeknél a menyiség nem módosítható"
-#: templates/js/translated/stock.js:1011
+#: templates/js/translated/stock.js:967
msgid "Specify stock quantity"
msgstr "Készlet mennyiség megadása"
-#: templates/js/translated/stock.js:1051
+#: templates/js/translated/stock.js:1007
msgid "You must select at least one available stock item"
msgstr "Ki kell választanod legalább egy rendelkezésre álló készlet tételt"
-#: templates/js/translated/stock.js:1209
+#: templates/js/translated/stock.js:1165
msgid "PASS"
msgstr "SIKER"
-#: templates/js/translated/stock.js:1211
+#: templates/js/translated/stock.js:1167
msgid "FAIL"
msgstr "SIKERTELEN"
-#: templates/js/translated/stock.js:1216
+#: templates/js/translated/stock.js:1172
msgid "NO RESULT"
msgstr "NINCS EREDMÉNY"
-#: templates/js/translated/stock.js:1263
+#: templates/js/translated/stock.js:1219
msgid "Pass test"
msgstr "Teszt sikeres"
-#: templates/js/translated/stock.js:1266
+#: templates/js/translated/stock.js:1222
msgid "Add test result"
msgstr "Teszt eredmény hozzáadása"
-#: templates/js/translated/stock.js:1292
+#: templates/js/translated/stock.js:1248
msgid "No test results found"
msgstr "Nincs teszt eredmény"
-#: templates/js/translated/stock.js:1348
+#: templates/js/translated/stock.js:1304
msgid "Test Date"
msgstr "Teszt dátuma"
-#: templates/js/translated/stock.js:1500
+#: templates/js/translated/stock.js:1456
msgid "Edit Test Result"
msgstr "Teszt eredmény szerkesztése"
-#: templates/js/translated/stock.js:1522
+#: templates/js/translated/stock.js:1478
msgid "Delete Test Result"
msgstr "Teszt eredmény törlése"
-#: templates/js/translated/stock.js:1551
+#: templates/js/translated/stock.js:1507
msgid "In production"
msgstr "Gyártásban"
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1511
msgid "Installed in Stock Item"
msgstr "Beépítve készlet tételbe"
-#: templates/js/translated/stock.js:1563
+#: templates/js/translated/stock.js:1519
msgid "Assigned to Sales Order"
msgstr "Vevő rendeléshez hozzárendelve"
-#: templates/js/translated/stock.js:1569
+#: templates/js/translated/stock.js:1525
msgid "No stock location set"
msgstr "Nincs hely megadva"
-#: templates/js/translated/stock.js:1727
+#: templates/js/translated/stock.js:1683
msgid "Stock item is in production"
msgstr "Készlet tétel gyártás alatt"
-#: templates/js/translated/stock.js:1732
+#: templates/js/translated/stock.js:1688
msgid "Stock item assigned to sales order"
msgstr "Készlet tétel hozzárendelve egy vevői rendeléshez"
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1691
msgid "Stock item assigned to customer"
msgstr "Készlet tétel hozzárendelve egy vevőhöz"
-#: templates/js/translated/stock.js:1739
+#: templates/js/translated/stock.js:1695
msgid "Stock item has expired"
msgstr "Készlet tétel lejárt"
-#: templates/js/translated/stock.js:1741
+#: templates/js/translated/stock.js:1697
msgid "Stock item will expire soon"
msgstr "Készlet tétel hamarosan lejár"
-#: templates/js/translated/stock.js:1747
+#: templates/js/translated/stock.js:1703
msgid "Serialized stock item has been allocated"
-msgstr "Egydi követésre kötelezett készlet tétel lefoglalva"
+msgstr "Egyedi követésre kötelezett készlet tétel lefoglalva"
-#: templates/js/translated/stock.js:1749
+#: templates/js/translated/stock.js:1705
msgid "Stock item has been fully allocated"
msgstr "Készlet tétel teljes egészében lefoglalva"
-#: templates/js/translated/stock.js:1751
+#: templates/js/translated/stock.js:1707
msgid "Stock item has been partially allocated"
msgstr "Készlet tétel részben lefoglalva"
-#: templates/js/translated/stock.js:1756
+#: templates/js/translated/stock.js:1712
msgid "Stock item has been installed in another item"
msgstr "Készlet tétel beépítve egy másikba"
-#: templates/js/translated/stock.js:1763
+#: templates/js/translated/stock.js:1719
msgid "Stock item has been rejected"
msgstr "Készlet tétel elutasítva"
-#: templates/js/translated/stock.js:1765
+#: templates/js/translated/stock.js:1721
msgid "Stock item is lost"
msgstr "Készlet tétel elveszett"
-#: templates/js/translated/stock.js:1767
+#: templates/js/translated/stock.js:1723
msgid "Stock item is destroyed"
msgstr "Készlet tétel megsemmisült"
-#: templates/js/translated/stock.js:1771
+#: templates/js/translated/stock.js:1727
#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr "Kimerült"
-#: templates/js/translated/stock.js:1821
+#: templates/js/translated/stock.js:1777
msgid "Stocktake"
msgstr "Leltár"
-#: templates/js/translated/stock.js:1903
+#: templates/js/translated/stock.js:1859
msgid "Supplier part not specified"
msgstr "Beszállítói alkatrész nincs megadva"
-#: templates/js/translated/stock.js:1941
+#: templates/js/translated/stock.js:1897
msgid "No stock items matching query"
msgstr "Nincs a lekérdezésnek megfelelő készlet tétel"
-#: templates/js/translated/stock.js:1962 templates/js/translated/stock.js:2010
+#: templates/js/translated/stock.js:1918 templates/js/translated/stock.js:1966
msgid "items"
msgstr "tételek"
-#: templates/js/translated/stock.js:2050
+#: templates/js/translated/stock.js:2006
msgid "batches"
msgstr "batch-ek"
-#: templates/js/translated/stock.js:2077
+#: templates/js/translated/stock.js:2033
msgid "locations"
msgstr "helyek"
-#: templates/js/translated/stock.js:2079
+#: templates/js/translated/stock.js:2035
msgid "Undefined location"
msgstr "Ismeretlen hely"
-#: templates/js/translated/stock.js:2278
+#: templates/js/translated/stock.js:2234
msgid "Set Stock Status"
msgstr "Készlet állapot beállítása"
-#: templates/js/translated/stock.js:2292
+#: templates/js/translated/stock.js:2248
msgid "Select Status Code"
msgstr "Státuszkód kiválasztása"
-#: templates/js/translated/stock.js:2293
+#: templates/js/translated/stock.js:2249
msgid "Status code must be selected"
msgstr "Státuszkódot ki kell választani"
-#: templates/js/translated/stock.js:2472
+#: templates/js/translated/stock.js:2428
msgid "Allocated Quantity"
msgstr "Lefoglalt mennyiség"
-#: templates/js/translated/stock.js:2682
+#: templates/js/translated/stock.js:2638
msgid "Details"
msgstr "Részletek"
-#: templates/js/translated/stock.js:2707
+#: templates/js/translated/stock.js:2663
msgid "Location no longer exists"
msgstr "A hely már nem létezik"
-#: templates/js/translated/stock.js:2726
+#: templates/js/translated/stock.js:2682
msgid "Purchase order no longer exists"
msgstr "Beszerzési megrendelés már nem létezik"
-#: templates/js/translated/stock.js:2745
+#: templates/js/translated/stock.js:2701
msgid "Customer no longer exists"
msgstr "Vevő már nem létezik"
-#: templates/js/translated/stock.js:2763
+#: templates/js/translated/stock.js:2719
msgid "Stock item no longer exists"
msgstr "A készlet tétel már nem létezik"
-#: templates/js/translated/stock.js:2786
+#: templates/js/translated/stock.js:2742
msgid "Added"
msgstr "Hozzáadva"
-#: templates/js/translated/stock.js:2794
+#: templates/js/translated/stock.js:2750
msgid "Removed"
msgstr "Eltávolítva"
-#: templates/js/translated/stock.js:2835
+#: templates/js/translated/stock.js:2791
msgid "Edit tracking entry"
msgstr "Készlettörténet bejegyzés szerkesztése"
-#: templates/js/translated/stock.js:2836
+#: templates/js/translated/stock.js:2792
msgid "Delete tracking entry"
msgstr "Készlettörténet bejegyzés törlése"
-#: templates/js/translated/stock.js:2887
+#: templates/js/translated/stock.js:2843
msgid "No installed items"
msgstr "Nincsenek beépített tételek"
-#: templates/js/translated/stock.js:2938
+#: templates/js/translated/stock.js:2894
msgid "Uninstall Stock Item"
msgstr "Készlet tétel kiszedése"
-#: templates/js/translated/stock.js:2974
+#: templates/js/translated/stock.js:2930
msgid "Install another stock item into this item"
msgstr "Másik tétel beépítése ebbe a készlet tételbe"
-#: templates/js/translated/stock.js:2975
+#: templates/js/translated/stock.js:2931
msgid "Stock items can only be installed if they meet the following criteria"
msgstr "Készlet tételek csak akkor építhetők be ha teljesítik a következő kritériumokat"
-#: templates/js/translated/stock.js:2977
+#: templates/js/translated/stock.js:2933
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr "A készlet tétel egy olyan alkatrészre mutat ami alkatrészjegyzéke ennek a készlet tételnek"
-#: templates/js/translated/stock.js:2978
+#: templates/js/translated/stock.js:2934
msgid "The Stock Item is currently available in stock"
msgstr "A készlet tétel jelenleg elérhető készleten"
-#: templates/js/translated/stock.js:2979
+#: templates/js/translated/stock.js:2935
msgid "The Stock Item is serialized and does not belong to another item"
msgstr "A készlet tétel egyedi követésre kötelezett és nem tartozik másik tételhez"
-#: templates/js/translated/stock.js:2992
+#: templates/js/translated/stock.js:2948
msgid "Select part to install"
msgstr "Válaszd ki a beépítendő alkatrészt"
@@ -9429,60 +9488,68 @@ msgstr "Felhasználható készlet"
msgid "Purchasable"
msgstr "Beszerezhető"
-#: templates/js/translated/tables.js:368
+#: templates/js/translated/tables.js:50
+msgid "Export Table Data"
+msgstr "Táblázat exportálása"
+
+#: templates/js/translated/tables.js:54
+msgid "Select File Format"
+msgstr "Fájlfomátum kiválasztása"
+
+#: templates/js/translated/tables.js:433
msgid "Loading data"
msgstr "Adatok betöltése"
-#: templates/js/translated/tables.js:371
+#: templates/js/translated/tables.js:436
msgid "rows per page"
msgstr "sor oldalanként"
-#: templates/js/translated/tables.js:376
+#: templates/js/translated/tables.js:441
msgid "Showing all rows"
msgstr "Összes sor mutatása"
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "Showing"
msgstr "Látható"
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "to"
msgstr "-"
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "of"
msgstr "a"
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "rows"
msgstr "sorból,"
-#: templates/js/translated/tables.js:382 templates/search_form.html:6
+#: templates/js/translated/tables.js:447 templates/search_form.html:6
#: templates/search_form.html:7
msgid "Search"
msgstr "Keresés"
-#: templates/js/translated/tables.js:385
+#: templates/js/translated/tables.js:450
msgid "No matching results"
msgstr "Nincs egyező eredmény"
-#: templates/js/translated/tables.js:388
+#: templates/js/translated/tables.js:453
msgid "Hide/Show pagination"
msgstr "Lapozó elrejtése/megjelenítése"
-#: templates/js/translated/tables.js:391
+#: templates/js/translated/tables.js:456
msgid "Refresh"
msgstr "Frissítés"
-#: templates/js/translated/tables.js:394
+#: templates/js/translated/tables.js:459
msgid "Toggle"
msgstr "Átváltás"
-#: templates/js/translated/tables.js:397
+#: templates/js/translated/tables.js:462
msgid "Columns"
msgstr "Oszlopok"
-#: templates/js/translated/tables.js:400
+#: templates/js/translated/tables.js:465
msgid "All"
msgstr "Összes"
@@ -9586,65 +9653,61 @@ msgstr "Email beállítások"
msgid "Email settings not configured"
msgstr "Email beállítások hiányoznak"
-#: templates/stock_table.html:14
-msgid "Export Stock Information"
-msgstr "Készlet adatok exportálása"
-
-#: templates/stock_table.html:20
+#: templates/stock_table.html:17
msgid "Barcode Actions"
msgstr "Vonalkód műveletek"
-#: templates/stock_table.html:36
+#: templates/stock_table.html:33
msgid "Print test reports"
msgstr "Teszt riportok nyomtatása"
-#: templates/stock_table.html:43
+#: templates/stock_table.html:40
msgid "Stock Options"
msgstr "Készlet opciók"
-#: templates/stock_table.html:48
+#: templates/stock_table.html:45
msgid "Add to selected stock items"
msgstr "Kiválasztott tételek mennyiségének növelése"
-#: templates/stock_table.html:49
+#: templates/stock_table.html:46
msgid "Remove from selected stock items"
msgstr "Kiválasztott tételek mennyiségének csökkentése"
-#: templates/stock_table.html:50
+#: templates/stock_table.html:47
msgid "Stocktake selected stock items"
msgstr "Kiválasztott készlet tételek leltározása"
-#: templates/stock_table.html:51
+#: templates/stock_table.html:48
msgid "Move selected stock items"
msgstr "Kiválasztott tételek áthelyezése"
-#: templates/stock_table.html:52
+#: templates/stock_table.html:49
msgid "Merge selected stock items"
msgstr "Kiválasztott tételek összevonása"
-#: templates/stock_table.html:52
+#: templates/stock_table.html:49
msgid "Merge stock"
msgstr "Készlet összevonása"
-#: templates/stock_table.html:53
+#: templates/stock_table.html:50
msgid "Order selected items"
msgstr "Kiválasztott tételek megrendelése"
-#: templates/stock_table.html:55
+#: templates/stock_table.html:52
msgid "Change status"
msgstr "Állapot módosítása"
-#: templates/stock_table.html:55
+#: templates/stock_table.html:52
msgid "Change stock status"
msgstr "Készlet állapot módosítása"
-#: templates/stock_table.html:58
+#: templates/stock_table.html:55
msgid "Delete selected items"
msgstr "Kiválasztott tételek törlése"
-#: templates/stock_table.html:58
+#: templates/stock_table.html:55
msgid "Delete stock"
-msgstr ""
+msgstr "Készlet törlése"
#: templates/yesnolabel.html:4
msgid "Yes"
diff --git a/InvenTree/locale/id/LC_MESSAGES/django.po b/InvenTree/locale/id/LC_MESSAGES/django.po
index ec5f7455b9..e39c24e8c6 100644
--- a/InvenTree/locale/id/LC_MESSAGES/django.po
+++ b/InvenTree/locale/id/LC_MESSAGES/django.po
@@ -1,10 +1,10 @@
-#: templates/js/translated/order.js:2090
+#: templates/js/translated/order.js:2178
msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-03-01 13:34+0000\n"
-"PO-Revision-Date: 2022-03-01 14:09\n"
+"POT-Creation-Date: 2022-03-07 04:31+0000\n"
+"PO-Revision-Date: 2022-03-07 04:47\n"
"Last-Translator: \n"
"Language-Team: Indonesian\n"
"Language: id_ID\n"
@@ -86,7 +86,7 @@ msgid "Duplicate serial: {sn}"
msgstr ""
#: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435
-#: stock/views.py:1101
+#: stock/views.py:983
msgid "Invalid quantity provided"
msgstr ""
@@ -114,100 +114,100 @@ msgstr ""
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:176
+#: InvenTree/models.py:185
msgid "Missing file"
msgstr ""
-#: InvenTree/models.py:177
+#: InvenTree/models.py:186
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:188 stock/models.py:2071
+#: InvenTree/models.py:197 stock/models.py:2123
#: templates/js/translated/attachment.js:119
msgid "Attachment"
msgstr ""
-#: InvenTree/models.py:189
+#: InvenTree/models.py:198
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:195 company/models.py:131 company/models.py:348
+#: InvenTree/models.py:204 company/models.py:131 company/models.py:348
#: company/models.py:564 order/models.py:127 part/models.py:860
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1346
+#: templates/js/translated/company.js:829 templates/js/translated/part.js:1347
msgid "Link"
msgstr ""
-#: InvenTree/models.py:196 build/models.py:330 part/models.py:861
-#: stock/models.py:566
+#: InvenTree/models.py:205 build/models.py:332 part/models.py:861
+#: stock/models.py:618
msgid "Link to external URL"
msgstr ""
-#: InvenTree/models.py:199 templates/js/translated/attachment.js:163
+#: InvenTree/models.py:208 templates/js/translated/attachment.js:163
msgid "Comment"
msgstr ""
-#: InvenTree/models.py:199
+#: InvenTree/models.py:208
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1277
+#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1277
#: common/models.py:1278 common/models.py:1506 common/models.py:1507
-#: part/models.py:2303 part/models.py:2323
+#: part/models.py:2317 part/models.py:2337
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2817
+#: templates/js/translated/stock.js:2773
msgid "User"
msgstr ""
-#: InvenTree/models.py:209
+#: InvenTree/models.py:218
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:232
+#: InvenTree/models.py:241
msgid "Filename must not be empty"
msgstr ""
-#: InvenTree/models.py:255
+#: InvenTree/models.py:264
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:265
+#: InvenTree/models.py:274
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:268
+#: InvenTree/models.py:277
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:275
+#: InvenTree/models.py:284
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:282
+#: InvenTree/models.py:291
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:317
+#: InvenTree/models.py:326
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1492
+#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1492
#: company/models.py:415 label/models.py:112 part/models.py:804
-#: part/models.py:2487 plugin/models.py:40 report/models.py:181
+#: part/models.py:2501 plugin/models.py:40 report/models.py:181
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:48
#: templates/InvenTree/settings/plugin.html:125
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:319
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:567
-#: templates/js/translated/part.js:706 templates/js/translated/part.js:1653
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/company.js:641 templates/js/translated/part.js:568
+#: templates/js/translated/part.js:707 templates/js/translated/part.js:1654
+#: templates/js/translated/stock.js:2573
msgid "Name"
msgstr ""
-#: InvenTree/models.py:340 build/models.py:207
+#: InvenTree/models.py:349 build/models.py:209
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
@@ -219,28 +219,28 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:92
#: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:765
-#: templates/js/translated/build.js:1920 templates/js/translated/company.js:345
+#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763
+#: templates/js/translated/build.js:1973 templates/js/translated/company.js:345
#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:911
-#: templates/js/translated/order.js:1105 templates/js/translated/order.js:1366
-#: templates/js/translated/part.js:626 templates/js/translated/part.js:1021
-#: templates/js/translated/part.js:1106 templates/js/translated/part.js:1276
-#: templates/js/translated/part.js:1672 templates/js/translated/part.js:1741
-#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2446
-#: templates/js/translated/stock.js:2629 templates/js/translated/stock.js:2667
+#: templates/js/translated/company.js:840 templates/js/translated/order.js:971
+#: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454
+#: templates/js/translated/part.js:627 templates/js/translated/part.js:1022
+#: templates/js/translated/part.js:1107 templates/js/translated/part.js:1277
+#: templates/js/translated/part.js:1673 templates/js/translated/part.js:1742
+#: templates/js/translated/stock.js:1656 templates/js/translated/stock.js:2402
+#: templates/js/translated/stock.js:2585 templates/js/translated/stock.js:2623
msgid "Description"
msgstr ""
-#: InvenTree/models.py:341
+#: InvenTree/models.py:350
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:349
+#: InvenTree/models.py:358
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:65 part/models.py:2805
+#: InvenTree/serializers.py:65 part/models.py:2820
msgid "Must be a valid number"
msgstr ""
@@ -294,87 +294,87 @@ msgstr ""
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:665
msgid "German"
msgstr ""
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:666
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:667
msgid "English"
msgstr ""
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:668
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:669
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:670
msgid "French"
msgstr ""
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:671
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:672
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:673
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:674
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:675
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:676
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:677
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:678
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:679
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:680
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:681
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:682
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:683
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:684
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:685
msgid "Chinese"
msgstr ""
@@ -421,7 +421,7 @@ msgid "Returned"
msgstr ""
#: InvenTree/status_codes.py:143 order/models.py:997
-#: templates/js/translated/order.js:2097 templates/js/translated/order.js:2394
+#: templates/js/translated/order.js:2185 templates/js/translated/order.js:2482
msgid "Shipped"
msgstr ""
@@ -501,7 +501,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2204
+#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2160
msgid "Merged stock items"
msgstr ""
@@ -593,43 +593,43 @@ msgstr ""
msgid "System Information"
msgstr ""
-#: barcodes/api.py:54 barcodes/api.py:152
+#: barcodes/api.py:55 barcodes/api.py:156
msgid "Must provide barcode_data parameter"
msgstr ""
-#: barcodes/api.py:128
+#: barcodes/api.py:132
msgid "No match found for barcode data"
msgstr ""
-#: barcodes/api.py:130
+#: barcodes/api.py:134
msgid "Match found for barcode data"
msgstr ""
-#: barcodes/api.py:155
+#: barcodes/api.py:159
msgid "Must provide stockitem parameter"
msgstr ""
-#: barcodes/api.py:162
+#: barcodes/api.py:166
msgid "No matching stock item found"
msgstr ""
-#: barcodes/api.py:193
+#: barcodes/api.py:197
msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:197
+#: barcodes/api.py:201
msgid "Barcode already matches Stock Location"
msgstr ""
-#: barcodes/api.py:201
+#: barcodes/api.py:205
msgid "Barcode already matches Part"
msgstr ""
-#: barcodes/api.py:207 barcodes/api.py:219
+#: barcodes/api.py:211 barcodes/api.py:223
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: barcodes/api.py:225
+#: barcodes/api.py:229
msgid "Barcode associated with Stock Item"
msgstr ""
@@ -641,18 +641,18 @@ msgstr ""
msgid "Confirm build cancellation"
msgstr ""
-#: build/models.py:133
+#: build/models.py:135
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:139 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:676 templates/js/translated/stock.js:2422
+#: templates/js/translated/build.js:677 templates/js/translated/stock.js:2378
msgid "Build Order"
msgstr ""
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:140 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:92
#: order/templates/order/so_sidebar.html:13
@@ -662,41 +662,41 @@ msgstr ""
msgid "Build Orders"
msgstr ""
-#: build/models.py:198
+#: build/models.py:200
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:213 order/models.py:563
-#: order/models.py:843 part/models.py:2716
+#: build/models.py:201 order/models.py:213 order/models.py:563
+#: order/models.py:843 part/models.py:2731
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:772 templates/js/translated/build.js:1401
-#: templates/js/translated/order.js:1136 templates/js/translated/order.js:2261
+#: templates/js/translated/bom.js:770 templates/js/translated/build.js:1402
+#: templates/js/translated/order.js:1223 templates/js/translated/order.js:2349
msgid "Reference"
msgstr ""
-#: build/models.py:210
+#: build/models.py:212
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:219 build/templates/build/build_base.html:169
+#: build/models.py:221 build/templates/build/build_base.html:169
#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:222
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:225 build/templates/build/build_base.html:77
+#: build/models.py:227 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
#: order/models.py:912 order/models.py:986
#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359
-#: part/models.py:2249 part/models.py:2265 part/models.py:2284
-#: part/models.py:2301 part/models.py:2403 part/models.py:2525
-#: part/models.py:2615 part/models.py:2691 part/models.py:2998
-#: part/serializers.py:666 part/templates/part/part_app_base.html:8
+#: part/models.py:2263 part/models.py:2279 part/models.py:2298
+#: part/models.py:2315 part/models.py:2417 part/models.py:2539
+#: part/models.py:2629 part/models.py:2706 part/models.py:3013
+#: part/serializers.py:669 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: part/templates/part/upload_bom.html:52
@@ -707,231 +707,231 @@ msgstr ""
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551
-#: templates/js/translated/bom.js:730 templates/js/translated/build.js:902
-#: templates/js/translated/build.js:1270 templates/js/translated/build.js:1655
-#: templates/js/translated/build.js:1925 templates/js/translated/company.js:492
+#: templates/js/translated/bom.js:728 templates/js/translated/build.js:903
+#: templates/js/translated/build.js:1271 templates/js/translated/build.js:1666
+#: templates/js/translated/build.js:1978 templates/js/translated/company.js:492
#: templates/js/translated/company.js:749 templates/js/translated/order.js:84
-#: templates/js/translated/order.js:651 templates/js/translated/order.js:1090
-#: templates/js/translated/order.js:1693 templates/js/translated/order.js:2050
-#: templates/js/translated/order.js:2245 templates/js/translated/part.js:1006
-#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1254
-#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1657
-#: templates/js/translated/stock.js:2892 templates/js/translated/stock.js:2991
+#: templates/js/translated/order.js:711 templates/js/translated/order.js:1177
+#: templates/js/translated/order.js:1781 templates/js/translated/order.js:2138
+#: templates/js/translated/order.js:2333 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1088 templates/js/translated/part.js:1255
+#: templates/js/translated/stock.js:518 templates/js/translated/stock.js:683
+#: templates/js/translated/stock.js:890 templates/js/translated/stock.js:1613
+#: templates/js/translated/stock.js:2848 templates/js/translated/stock.js:2947
msgid "Part"
msgstr ""
-#: build/models.py:233
+#: build/models.py:235
msgid "Select part to build"
msgstr ""
-#: build/models.py:238
+#: build/models.py:240
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:242
+#: build/models.py:244
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 templates/js/translated/build.js:1643
-#: templates/js/translated/order.js:1681
+#: build/models.py:249 build/serializers.py:729
+#: templates/js/translated/build.js:1654 templates/js/translated/order.js:1769
msgid "Source Location"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:256
+#: build/models.py:258
msgid "Destination Location"
msgstr ""
-#: build/models.py:260
+#: build/models.py:262
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:264
+#: build/models.py:266
msgid "Build Quantity"
msgstr ""
-#: build/models.py:267
+#: build/models.py:269
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:271
+#: build/models.py:273
msgid "Completed items"
msgstr ""
-#: build/models.py:273
+#: build/models.py:275
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:277 part/templates/part/part_base.html:234
+#: build/models.py:279 part/templates/part/part_base.html:234
msgid "Build Status"
msgstr ""
-#: build/models.py:281
+#: build/models.py:283
msgid "Build status code"
msgstr ""
-#: build/models.py:285 build/serializers.py:218 order/serializers.py:272
-#: stock/models.py:570 templates/js/translated/order.js:513
+#: build/models.py:287 build/serializers.py:218 order/serializers.py:272
+#: stock/models.py:622 templates/js/translated/order.js:573
msgid "Batch Code"
msgstr ""
-#: build/models.py:289 build/serializers.py:219
+#: build/models.py:291 build/serializers.py:219
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:129 part/models.py:999
-#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1379
+#: build/models.py:294 order/models.py:129 part/models.py:999
+#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1467
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:585
+#: build/models.py:298 order/models.py:585
msgid "Target completion date"
msgstr ""
-#: build/models.py:297
+#: build/models.py:299
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:255
-#: templates/js/translated/build.js:2002
+#: build/models.py:302 order/models.py:255
+#: templates/js/translated/build.js:2055
msgid "Completion Date"
msgstr ""
-#: build/models.py:306
+#: build/models.py:308
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:1970
+#: build/models.py:316 templates/js/translated/build.js:2023
msgid "Issued by"
msgstr ""
-#: build/models.py:315
+#: build/models.py:317
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:323 build/templates/build/build_base.html:190
+#: build/models.py:325 build/templates/build/build_base.html:190
#: build/templates/build/detail.html:116 order/models.py:143
#: order/templates/order/order_base.html:170
#: order/templates/order/sales_order_base.html:182 part/models.py:1003
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1982 templates/js/translated/order.js:945
+#: templates/js/translated/build.js:2035 templates/js/translated/order.js:1005
msgid "Responsible"
msgstr ""
-#: build/models.py:324
+#: build/models.py:326
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:329 build/templates/build/detail.html:102
+#: build/models.py:331 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:564
+#: part/templates/part/part_base.html:354 stock/models.py:616
#: stock/templates/stock/item_base.html:352
msgid "External Link"
msgstr ""
-#: build/models.py:334 build/serializers.py:381
+#: build/models.py:336 build/serializers.py:381
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
#: order/models.py:147 order/models.py:845 order/models.py:1107
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/models.py:988
-#: part/templates/part/detail.html:146 part/templates/part/part_sidebar.html:57
+#: part/templates/part/detail.html:141 part/templates/part/part_sidebar.html:57
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:137 stock/forms.py:171 stock/models.py:636
-#: stock/models.py:1971 stock/models.py:2077 stock/serializers.py:332
+#: stock/forms.py:137 stock/forms.py:171 stock/models.py:688
+#: stock/models.py:2023 stock/models.py:2129 stock/serializers.py:332
#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:936
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1257
-#: templates/js/translated/order.js:1562 templates/js/translated/order.js:2419
-#: templates/js/translated/stock.js:1344 templates/js/translated/stock.js:1935
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934
+#: templates/js/translated/company.js:845 templates/js/translated/order.js:1344
+#: templates/js/translated/order.js:1650 templates/js/translated/order.js:2507
+#: templates/js/translated/stock.js:1300 templates/js/translated/stock.js:1891
msgid "Notes"
msgstr ""
-#: build/models.py:335
+#: build/models.py:337
msgid "Extra build notes"
msgstr ""
-#: build/models.py:748
+#: build/models.py:750
msgid "No build output specified"
msgstr ""
-#: build/models.py:751
+#: build/models.py:753
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:754
+#: build/models.py:756
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1060
+#: build/models.py:1162
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1069
+#: build/models.py:1171
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1079
+#: build/models.py:1181
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1085 order/models.py:1225
+#: build/models.py:1187 order/models.py:1225
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1091
+#: build/models.py:1193
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1148
+#: build/models.py:1250
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1217 stock/templates/stock/item_base.html:324
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898
+#: build/models.py:1319 stock/templates/stock/item_base.html:324
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1951
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1218
+#: build/models.py:1320
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1234 build/serializers.py:576 order/serializers.py:783
+#: build/models.py:1336 build/serializers.py:576 order/serializers.py:783
#: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635
#: stock/serializers.py:753 stock/templates/stock/item_base.html:9
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:346
-#: templates/js/translated/build.js:687 templates/js/translated/build.js:692
-#: templates/js/translated/build.js:1657 templates/js/translated/build.js:2050
-#: templates/js/translated/order.js:85 templates/js/translated/order.js:1694
-#: templates/js/translated/order.js:1949 templates/js/translated/order.js:1954
-#: templates/js/translated/order.js:2057 templates/js/translated/order.js:2147
-#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728
-#: templates/js/translated/stock.js:2753
+#: templates/js/translated/build.js:688 templates/js/translated/build.js:693
+#: templates/js/translated/build.js:1668 templates/js/translated/build.js:2103
+#: templates/js/translated/order.js:85 templates/js/translated/order.js:1782
+#: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:2235
+#: templates/js/translated/stock.js:519 templates/js/translated/stock.js:684
+#: templates/js/translated/stock.js:2709
msgid "Stock Item"
msgstr ""
-#: build/models.py:1235
+#: build/models.py:1337
msgid "Source stock item"
msgstr ""
-#: build/models.py:1247 build/serializers.py:188
+#: build/models.py:1349 build/serializers.py:188
#: build/templates/build/build_base.html:82
#: build/templates/build/detail.html:35 common/models.py:1317
#: company/forms.py:42 company/templates/company/supplier_part.html:251
#: order/models.py:836 order/models.py:1265 order/serializers.py:903
#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144
-#: part/forms.py:160 part/forms.py:176 part/models.py:2707
-#: part/templates/part/detail.html:1008 part/templates/part/detail.html:1094
+#: part/forms.py:160 part/forms.py:176 part/models.py:2722
+#: part/templates/part/detail.html:994 part/templates/part/detail.html:1080
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_build_order_base.html:114
@@ -943,32 +943,32 @@ msgstr ""
#: stock/templates/stock/item_base.html:176
#: stock/templates/stock/item_base.html:241
#: stock/templates/stock/item_base.html:249
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:780
-#: templates/js/translated/build.js:375 templates/js/translated/build.js:523
-#: templates/js/translated/build.js:714 templates/js/translated/build.js:911
-#: templates/js/translated/build.js:921 templates/js/translated/build.js:1297
-#: templates/js/translated/build.js:1658
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778
+#: templates/js/translated/build.js:376 templates/js/translated/build.js:524
+#: templates/js/translated/build.js:715 templates/js/translated/build.js:912
+#: templates/js/translated/build.js:922 templates/js/translated/build.js:1298
+#: templates/js/translated/build.js:1669
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:101 templates/js/translated/order.js:1142
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:1976
-#: templates/js/translated/order.js:2064 templates/js/translated/order.js:2153
-#: templates/js/translated/order.js:2267 templates/js/translated/part.js:906
-#: templates/js/translated/part.js:1884 templates/js/translated/part.js:2007
-#: templates/js/translated/part.js:2085 templates/js/translated/stock.js:391
-#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758
-#: templates/js/translated/stock.js:2802 templates/js/translated/stock.js:2904
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:1229
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:2064
+#: templates/js/translated/order.js:2152 templates/js/translated/order.js:2241
+#: templates/js/translated/order.js:2355 templates/js/translated/part.js:907
+#: templates/js/translated/part.js:1885 templates/js/translated/part.js:2008
+#: templates/js/translated/part.js:2086 templates/js/translated/stock.js:390
+#: templates/js/translated/stock.js:544 templates/js/translated/stock.js:714
+#: templates/js/translated/stock.js:2758 templates/js/translated/stock.js:2860
msgid "Quantity"
msgstr ""
-#: build/models.py:1248
+#: build/models.py:1350
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1256
+#: build/models.py:1358
msgid "Install into"
msgstr ""
-#: build/models.py:1257
+#: build/models.py:1359
msgid "Destination stock item"
msgstr ""
@@ -997,8 +997,8 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:201 build/serializers.py:596 order/models.py:280
-#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:826
-#: stock/models.py:404 stock/models.py:1180 stock/serializers.py:305
+#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:836
+#: stock/models.py:456 stock/models.py:1232 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1012,8 +1012,8 @@ msgstr ""
#: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907
#: stock/forms.py:78 stock/serializers.py:314
-#: templates/js/translated/order.js:524 templates/js/translated/stock.js:238
-#: templates/js/translated/stock.js:392
+#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237
+#: templates/js/translated/stock.js:391
msgid "Serial Numbers"
msgstr ""
@@ -1029,7 +1029,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:275 stock/api.py:549
+#: build/serializers.py:275 stock/api.py:551
msgid "The following serial numbers already exist"
msgstr ""
@@ -1041,13 +1041,13 @@ msgstr ""
#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788
#: stock/serializers.py:1029 stock/templates/stock/item_base.html:292
#: templates/js/translated/barcode.js:384
-#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:699
-#: templates/js/translated/build.js:1309 templates/js/translated/order.js:551
-#: templates/js/translated/order.js:1961 templates/js/translated/order.js:2072
-#: templates/js/translated/order.js:2080 templates/js/translated/order.js:2161
-#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564
-#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936
-#: templates/js/translated/stock.js:1807 templates/js/translated/stock.js:2694
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700
+#: templates/js/translated/build.js:1310 templates/js/translated/order.js:611
+#: templates/js/translated/order.js:2049 templates/js/translated/order.js:2160
+#: templates/js/translated/order.js:2168 templates/js/translated/order.js:2249
+#: templates/js/translated/part.js:179 templates/js/translated/stock.js:520
+#: templates/js/translated/stock.js:685 templates/js/translated/stock.js:892
+#: templates/js/translated/stock.js:1763 templates/js/translated/stock.js:2650
msgid "Location"
msgstr ""
@@ -1058,10 +1058,10 @@ msgstr ""
#: build/serializers.py:377 build/templates/build/build_base.html:142
#: build/templates/build/detail.html:63 order/models.py:579
#: order/serializers.py:290 stock/templates/stock/item_base.html:182
-#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1954
-#: templates/js/translated/order.js:656 templates/js/translated/order.js:915
-#: templates/js/translated/order.js:1371 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2771 templates/js/translated/stock.js:2920
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2007
+#: templates/js/translated/order.js:716 templates/js/translated/order.js:975
+#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2727 templates/js/translated/stock.js:2876
msgid "Status"
msgstr ""
@@ -1073,7 +1073,7 @@ msgstr ""
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:445 templates/js/translated/build.js:150
+#: build/serializers.py:445 templates/js/translated/build.js:151
msgid "Required stock has not been fully allocated"
msgstr ""
@@ -1085,7 +1085,7 @@ msgstr ""
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:461 templates/js/translated/build.js:154
+#: build/serializers.py:461 templates/js/translated/build.js:155
msgid "Required build quantity has not been completed"
msgstr ""
@@ -1097,8 +1097,8 @@ msgstr ""
msgid "No build outputs have been created for this build order"
msgstr ""
-#: build/serializers.py:501 build/serializers.py:550 part/models.py:2831
-#: part/models.py:2990
+#: build/serializers.py:501 build/serializers.py:550 part/models.py:2846
+#: part/models.py:3005
msgid "BOM Item"
msgstr ""
@@ -1135,6 +1135,26 @@ msgstr ""
msgid "Allocation items must be provided"
msgstr ""
+#: build/serializers.py:730
+msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
+msgstr ""
+
+#: build/serializers.py:735
+msgid "Interchangeable Stock"
+msgstr ""
+
+#: build/serializers.py:736
+msgid "Stock items in multiple locations can be used interchangeably"
+msgstr ""
+
+#: build/serializers.py:741
+msgid "Substitute Stock"
+msgstr ""
+
+#: build/serializers.py:742
+msgid "Allow allocation of substitute parts"
+msgstr ""
+
#: build/tasks.py:98
msgid "Stock required for build order"
msgstr ""
@@ -1206,9 +1226,9 @@ msgstr ""
#: order/templates/order/order_base.html:156
#: order/templates/order/sales_order_base.html:163
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1994 templates/js/translated/order.js:932
-#: templates/js/translated/order.js:1204 templates/js/translated/order.js:1387
-#: templates/js/translated/order.js:2330 templates/js/translated/part.js:910
+#: templates/js/translated/build.js:2047 templates/js/translated/order.js:992
+#: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475
+#: templates/js/translated/order.js:2418 templates/js/translated/part.js:911
msgid "Target Date"
msgstr ""
@@ -1230,7 +1250,7 @@ msgstr ""
#: build/templates/build/build_base.html:163
#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
#: order/templates/order/sales_order_base.html:170
-#: templates/js/translated/build.js:1940
+#: templates/js/translated/build.js:1993
#: templates/js/translated/table_filters.js:365
msgid "Completed"
msgstr ""
@@ -1242,7 +1262,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:286
-#: templates/js/translated/order.js:1326 templates/js/translated/stock.js:2436
+#: templates/js/translated/order.js:1414 templates/js/translated/stock.js:2392
msgid "Sales Order"
msgstr ""
@@ -1277,7 +1297,7 @@ msgid "Stock can be taken from any available location."
msgstr ""
#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133
-#: templates/js/translated/order.js:657 templates/js/translated/order.js:1246
+#: templates/js/translated/order.js:717 templates/js/translated/order.js:1333
msgid "Destination"
msgstr ""
@@ -1285,13 +1305,13 @@ msgstr ""
msgid "Destination location not specified"
msgstr ""
-#: build/templates/build/detail.html:74 templates/js/translated/build.js:929
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:930
msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:310
-#: templates/js/translated/stock.js:1796 templates/js/translated/stock.js:2927
+#: templates/js/translated/stock.js:1752 templates/js/translated/stock.js:2883
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:238
msgid "Batch"
@@ -1300,7 +1320,7 @@ msgstr ""
#: build/templates/build/detail.html:127
#: order/templates/order/order_base.html:143
#: order/templates/order/sales_order_base.html:157
-#: templates/js/translated/build.js:1962
+#: templates/js/translated/build.js:2015
msgid "Created"
msgstr ""
@@ -1320,7 +1340,7 @@ msgstr ""
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:177 templates/js/translated/build.js:1484
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1485
msgid "Unallocate stock"
msgstr ""
@@ -1329,111 +1349,119 @@ msgid "Unallocate Stock"
msgstr ""
#: build/templates/build/detail.html:180
-msgid "Allocate stock to build"
+msgid "Automatically allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
+#: build/templates/build/detail.html:181
+msgid "Auto Allocate"
+msgstr ""
+
+#: build/templates/build/detail.html:183
+msgid "Manually allocate stock to build"
+msgstr ""
+
+#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8
msgid "Allocate Stock"
msgstr ""
-#: build/templates/build/detail.html:184
+#: build/templates/build/detail.html:187
msgid "Order required parts"
msgstr ""
-#: build/templates/build/detail.html:185
+#: build/templates/build/detail.html:188
#: company/templates/company/detail.html:38
#: company/templates/company/detail.html:85 order/views.py:463
-#: part/templates/part/category.html:177
+#: part/templates/part/category.html:174
msgid "Order Parts"
msgstr ""
-#: build/templates/build/detail.html:197
+#: build/templates/build/detail.html:200
msgid "Untracked stock has been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:201
+#: build/templates/build/detail.html:204
msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:208
+#: build/templates/build/detail.html:211
msgid "Allocate selected items"
msgstr ""
-#: build/templates/build/detail.html:218
+#: build/templates/build/detail.html:221
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:230
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:231
+#: build/templates/build/detail.html:234
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:232
+#: build/templates/build/detail.html:235
msgid "New Build Output"
msgstr ""
-#: build/templates/build/detail.html:246
+#: build/templates/build/detail.html:249
msgid "Output Actions"
msgstr ""
-#: build/templates/build/detail.html:250
+#: build/templates/build/detail.html:253
msgid "Complete selected build outputs"
msgstr ""
-#: build/templates/build/detail.html:251
+#: build/templates/build/detail.html:254
msgid "Complete outputs"
msgstr ""
-#: build/templates/build/detail.html:253
+#: build/templates/build/detail.html:256
msgid "Delete selected build outputs"
msgstr ""
-#: build/templates/build/detail.html:254
+#: build/templates/build/detail.html:257
msgid "Delete outputs"
msgstr ""
-#: build/templates/build/detail.html:270
+#: build/templates/build/detail.html:273
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19
+#: build/templates/build/detail.html:285 build/templates/build/sidebar.html:19
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:107
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:222
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217
#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:105
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:298
+#: build/templates/build/detail.html:301
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:302 build/templates/build/detail.html:478
-#: company/templates/company/detail.html:188
-#: company/templates/company/detail.html:215
+#: build/templates/build/detail.html:305 build/templates/build/detail.html:481
+#: company/templates/company/detail.html:190
+#: company/templates/company/detail.html:217
#: order/templates/order/purchase_order_detail.html:80
#: order/templates/order/purchase_order_detail.html:108
#: order/templates/order/sales_order_detail.html:127
#: order/templates/order/sales_order_detail.html:186
-#: part/templates/part/detail.html:150 stock/templates/stock/item.html:125
+#: part/templates/part/detail.html:145 stock/templates/stock/item.html:125
#: stock/templates/stock/item.html:223
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:519
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:520
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:329
+#: build/templates/build/index.html:18 part/templates/part/detail.html:322
msgid "New Build Order"
msgstr ""
@@ -1658,7 +1686,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:732 part/models.py:2527 report/models.py:187
+#: common/models.py:732 part/models.py:2541 report/models.py:187
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:417
msgid "Template"
@@ -1668,7 +1696,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:739 part/models.py:951 templates/js/translated/bom.js:1300
+#: common/models.py:739 part/models.py:951 templates/js/translated/bom.js:1305
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:429
msgid "Assembly"
@@ -2243,7 +2271,7 @@ msgstr ""
#: common/models.py:1325 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:937 templates/js/translated/part.js:1889
+#: templates/js/translated/part.js:938 templates/js/translated/part.js:1890
msgid "Price"
msgstr ""
@@ -2337,14 +2365,14 @@ msgstr ""
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
-#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:210
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208
#: templates/patterns/wizard/upload.html:35
msgid "Upload File"
msgstr ""
#: common/views.py:94 order/views.py:244
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:211
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:209
#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
@@ -2472,7 +2500,7 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:508
+#: company/models.py:320 company/models.py:535 stock/models.py:560
#: stock/templates/stock/item_base.html:137 templates/js/translated/bom.js:541
msgid "Base Part"
msgstr ""
@@ -2499,8 +2527,8 @@ msgstr ""
#: company/models.py:342 company/templates/company/manufacturer_part.html:96
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1124
-#: templates/js/translated/part.js:245 templates/js/translated/part.js:895
+#: templates/js/translated/company.js:818 templates/js/translated/order.js:1211
+#: templates/js/translated/part.js:245 templates/js/translated/part.js:896
msgid "MPN"
msgstr ""
@@ -2529,8 +2557,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2064 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1331
+#: stock/models.py:2116 templates/js/translated/company.js:647
+#: templates/js/translated/part.js:716 templates/js/translated/stock.js:1287
msgid "Value"
msgstr ""
@@ -2538,10 +2566,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:945 part/models.py:2495
+#: company/models.py:429 part/models.py:945 part/models.py:2509
#: part/templates/part/part_base.html:288
#: templates/InvenTree/settings/settings.html:324
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:721
+#: templates/js/translated/company.js:653 templates/js/translated/part.js:722
msgid "Units"
msgstr ""
@@ -2559,8 +2587,8 @@ msgstr ""
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237
#: part/bom.py:265 stock/templates/stock/item_base.html:376
#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:898
-#: templates/js/translated/part.js:215 templates/js/translated/part.js:863
+#: templates/js/translated/company.js:774 templates/js/translated/order.js:958
+#: templates/js/translated/part.js:215 templates/js/translated/part.js:864
#: templates/js/translated/table_filters.js:388
msgid "Supplier"
msgstr ""
@@ -2570,8 +2598,8 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1111
-#: templates/js/translated/part.js:226 templates/js/translated/part.js:881
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198
+#: templates/js/translated/part.js:226 templates/js/translated/part.js:882
msgid "SKU"
msgstr ""
@@ -2592,7 +2620,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:119
-#: part/models.py:2719 part/templates/part/upload_bom.html:59
+#: part/models.py:2734 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409
msgid "Note"
@@ -2607,8 +2635,8 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:532 stock/templates/stock/item_base.html:317
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1931
+#: stock/models.py:584 stock/templates/stock/item_base.html:317
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1887
msgid "Packaging"
msgstr ""
@@ -2676,11 +2704,11 @@ msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:83 order/models.py:574
-#: order/templates/order/sales_order_base.html:115 stock/models.py:551
-#: stock/models.py:552 stock/serializers.py:683
+#: order/templates/order/sales_order_base.html:115 stock/models.py:603
+#: stock/models.py:604 stock/serializers.py:683
#: stock/templates/stock/item_base.html:269
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1348
-#: templates/js/translated/stock.js:2735
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1436
+#: templates/js/translated/stock.js:2691
#: templates/js/translated/table_filters.js:392
msgid "Customer"
msgstr ""
@@ -2711,7 +2739,7 @@ msgstr ""
#: company/templates/company/detail.html:20
#: company/templates/company/manufacturer_part.html:118
-#: part/templates/part/detail.html:367
+#: part/templates/part/detail.html:360
msgid "New Supplier Part"
msgstr ""
@@ -2719,14 +2747,14 @@ msgstr ""
#: company/templates/company/detail.html:79
#: company/templates/company/manufacturer_part.html:127
#: company/templates/company/manufacturer_part.html:156
-#: part/templates/part/category.html:171 part/templates/part/detail.html:376
-#: part/templates/part/detail.html:405
+#: part/templates/part/category.html:168 part/templates/part/detail.html:369
+#: part/templates/part/detail.html:398
msgid "Options"
msgstr ""
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177
+#: part/templates/part/category.html:174
msgid "Order parts"
msgstr ""
@@ -2748,7 +2776,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:395
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:388
msgid "New Manufacturer Part"
msgstr ""
@@ -2762,7 +2790,7 @@ msgstr ""
#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:40
+#: part/templates/part/detail.html:80 part/templates/part/part_sidebar.html:40
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
@@ -2784,7 +2812,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:44
+#: part/templates/part/detail.html:103 part/templates/part/part_sidebar.html:44
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
@@ -2802,23 +2830,23 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/detail.html:168
-#: templates/js/translated/build.js:1281
+#: templates/js/translated/build.js:1282
msgid "Assigned Stock"
msgstr ""
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:186
msgid "Company Notes"
msgstr ""
-#: company/templates/company/detail.html:384
+#: company/templates/company/detail.html:380
#: company/templates/company/manufacturer_part.html:215
-#: part/templates/part/detail.html:449
+#: part/templates/part/detail.html:442
msgid "Delete Supplier Parts?"
msgstr ""
-#: company/templates/company/detail.html:385
+#: company/templates/company/detail.html:381
#: company/templates/company/manufacturer_part.html:216
-#: part/templates/part/detail.html:450
+#: part/templates/part/detail.html:443
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2835,7 +2863,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:34
#: company/templates/company/supplier_part.html:159
-#: part/templates/part/detail.html:88 part/templates/part/part_base.html:76
+#: part/templates/part/detail.html:83 part/templates/part/part_base.html:76
msgid "Order part"
msgstr ""
@@ -2862,14 +2890,14 @@ msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
-#: part/templates/part/detail.html:378
+#: part/templates/part/detail.html:371
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
#: company/templates/company/manufacturer_part.html:158
#: company/templates/company/manufacturer_part.html:254
-#: part/templates/part/detail.html:378 part/templates/part/detail.html:407
+#: part/templates/part/detail.html:371 part/templates/part/detail.html:400
#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31
#: users/models.py:217
msgid "Delete"
@@ -2878,12 +2906,12 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:143
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:17
-#: part/templates/part/detail.html:196 part/templates/part/part_sidebar.html:9
+#: part/templates/part/detail.html:191 part/templates/part/part_sidebar.html:9
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:147
-#: part/templates/part/detail.html:201
+#: part/templates/part/detail.html:196
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:66
msgid "New Parameter"
@@ -2894,7 +2922,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:191
-#: part/templates/part/detail.html:908
+#: part/templates/part/detail.html:894
msgid "Add Parameter"
msgstr ""
@@ -2923,9 +2951,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:516
+#: company/templates/company/supplier_part.html:24 stock/models.py:568
#: stock/templates/stock/item_base.html:381
-#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1888
+#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1844
msgid "Supplier Part"
msgstr ""
@@ -2951,7 +2979,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:166
-#: templates/js/translated/stock.js:368
+#: templates/js/translated/stock.js:367
msgid "New Stock Item"
msgstr ""
@@ -2961,7 +2989,7 @@ msgid "Supplier Part Orders"
msgstr ""
#: company/templates/company/supplier_part.html:160
-#: part/templates/part/detail.html:89
+#: part/templates/part/detail.html:84
msgid "Order Part"
msgstr ""
@@ -2972,7 +3000,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1319
+#: part/templates/part/prices.html:271 part/views.py:1254
msgid "Add Price Break"
msgstr ""
@@ -2980,11 +3008,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1381
+#: company/templates/company/supplier_part.html:224 part/views.py:1316
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1367
+#: company/templates/company/supplier_part.html:238 part/views.py:1302
msgid "Edit Price Break"
msgstr ""
@@ -3002,10 +3030,10 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:150
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/bom.js:553 templates/js/translated/part.js:495
-#: templates/js/translated/part.js:630 templates/js/translated/part.js:1147
-#: templates/js/translated/part.js:1308 templates/js/translated/stock.js:935
-#: templates/js/translated/stock.js:1711 templates/navbar.html:28
+#: templates/js/translated/bom.js:553 templates/js/translated/part.js:496
+#: templates/js/translated/part.js:631 templates/js/translated/part.js:1148
+#: templates/js/translated/part.js:1309 templates/js/translated/stock.js:891
+#: templates/js/translated/stock.js:1667 templates/navbar.html:28
msgid "Stock"
msgstr ""
@@ -3028,7 +3056,7 @@ msgstr ""
#: stock/templates/stock/location.html:150
#: stock/templates/stock/location.html:162
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2641
+#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2597
#: templates/stats.html:105 templates/stats.html:114 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -3058,20 +3086,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:591
+#: company/views.py:129 part/views.py:589
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:623
+#: company/views.py:158 part/views.py:621
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:630
+#: company/views.py:165 part/views.py:628
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:639
+#: company/views.py:174 part/views.py:637
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3190,7 +3218,7 @@ msgid "Company from which the items are being ordered"
msgstr ""
#: order/models.py:231 order/templates/order/order_base.html:118
-#: templates/js/translated/order.js:907
+#: templates/js/translated/order.js:967
msgid "Supplier Reference"
msgstr ""
@@ -3247,7 +3275,7 @@ msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
#: order/models.py:589 order/models.py:1084
-#: templates/js/translated/order.js:1395 templates/js/translated/order.js:1546
+#: templates/js/translated/order.js:1483 templates/js/translated/order.js:1634
msgid "Shipment Date"
msgstr ""
@@ -3292,7 +3320,7 @@ msgid "Supplier part must match supplier"
msgstr ""
#: order/models.py:891 order/models.py:982 order/models.py:1078
-#: templates/js/translated/order.js:1937 templates/js/translated/stock.js:2403
+#: templates/js/translated/order.js:2025 templates/js/translated/stock.js:2359
msgid "Order"
msgstr ""
@@ -3300,8 +3328,8 @@ msgstr ""
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:331
-#: templates/js/translated/order.js:876 templates/js/translated/part.js:838
-#: templates/js/translated/stock.js:1865 templates/js/translated/stock.js:2716
+#: templates/js/translated/order.js:936 templates/js/translated/part.js:839
+#: templates/js/translated/stock.js:1821 templates/js/translated/stock.js:2672
msgid "Purchase Order"
msgstr ""
@@ -3310,8 +3338,8 @@ msgid "Supplier part"
msgstr ""
#: order/models.py:920 order/templates/order/order_base.html:163
-#: templates/js/translated/order.js:654 templates/js/translated/order.js:1226
-#: templates/js/translated/part.js:932 templates/js/translated/part.js:959
+#: templates/js/translated/order.js:714 templates/js/translated/order.js:1313
+#: templates/js/translated/part.js:933 templates/js/translated/part.js:960
#: templates/js/translated/table_filters.js:312
msgid "Received"
msgstr ""
@@ -3320,9 +3348,9 @@ msgstr ""
msgid "Number of items received"
msgstr ""
-#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:645
+#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:697
#: stock/serializers.py:170 stock/templates/stock/item_base.html:338
-#: templates/js/translated/stock.js:1919
+#: templates/js/translated/stock.js:1875
msgid "Purchase Price"
msgstr ""
@@ -3456,11 +3484,11 @@ msgstr ""
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:273 templates/js/translated/order.js:514
+#: order/serializers.py:273 templates/js/translated/order.js:574
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:281 templates/js/translated/order.js:525
+#: order/serializers.py:281 templates/js/translated/order.js:585
msgid "Enter serial numbers for incoming stock items"
msgstr ""
@@ -3578,7 +3606,7 @@ msgstr ""
#: order/templates/order/order_base.html:94
#: order/templates/order/sales_order_base.html:89
-#: templates/js/translated/stock.js:2459
+#: templates/js/translated/stock.js:2415
msgid "Order Status"
msgstr ""
@@ -3650,10 +3678,10 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/bom.js:76 templates/js/translated/build.js:380
-#: templates/js/translated/build.js:528 templates/js/translated/build.js:1547
-#: templates/js/translated/order.js:602 templates/js/translated/order.js:1605
-#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769
+#: templates/js/translated/bom.js:76 templates/js/translated/build.js:381
+#: templates/js/translated/build.js:529 templates/js/translated/build.js:1558
+#: templates/js/translated/order.js:662 templates/js/translated/order.js:1693
+#: templates/js/translated/stock.js:557 templates/js/translated/stock.js:725
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr ""
@@ -3717,8 +3745,8 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:940 templates/js/translated/order.js:1403
-#: templates/js/translated/order.js:1533
+#: templates/js/translated/order.js:1000 templates/js/translated/order.js:1491
+#: templates/js/translated/order.js:1621
msgid "Items"
msgstr ""
@@ -3752,9 +3780,9 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:27
-#: order/templates/order/purchase_order_detail.html:182
+#: order/templates/order/purchase_order_detail.html:166
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:245
+#: order/templates/order/sales_order_detail.html:233
msgid "Add Line Item"
msgstr ""
@@ -3794,7 +3822,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:122
-#: templates/js/translated/order.js:1361
+#: templates/js/translated/order.js:1449
msgid "Customer Reference"
msgstr ""
@@ -3827,7 +3855,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:48
-#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1465
+#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1466
msgid "Actions"
msgstr ""
@@ -3902,31 +3930,31 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:499
+#: part/api.py:502
msgid "Valid"
msgstr ""
-#: part/api.py:500
+#: part/api.py:503
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:505
+#: part/api.py:508
msgid "This option must be selected"
msgstr ""
-#: part/api.py:847
+#: part/api.py:866
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:851
+#: part/api.py:870
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:866
+#: part/api.py:885
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:897 part/api.py:901 part/api.py:916 part/api.py:920
+#: part/api.py:916 part/api.py:920 part/api.py:935 part/api.py:939
msgid "This field is required"
msgstr ""
@@ -3944,7 +3972,7 @@ msgid "Available Stock"
msgstr ""
#: part/bom.py:128 part/templates/part/part_base.html:203
-#: templates/js/translated/part.js:1323
+#: templates/js/translated/part.js:1324
msgid "On Order"
msgstr ""
@@ -3976,7 +4004,7 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:97 part/models.py:2571 part/templates/part/category.html:15
+#: part/models.py:97 part/models.py:2585 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -3993,7 +4021,7 @@ msgstr ""
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:37
-#: templates/js/translated/part.js:1685 templates/navbar.html:21
+#: templates/js/translated/part.js:1686 templates/navbar.html:21
#: templates/stats.html:92 templates/stats.html:101 users/models.py:41
msgid "Parts"
msgstr ""
@@ -4023,7 +4051,7 @@ msgstr ""
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:803 part/models.py:2624
+#: part/models.py:803 part/models.py:2638
msgid "Part name"
msgstr ""
@@ -4056,11 +4084,11 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:841 part/models.py:2321 part/models.py:2570
+#: part/models.py:841 part/models.py:2335 part/models.py:2584
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:223
-#: templates/js/translated/part.js:1290
+#: templates/js/translated/part.js:1291
msgid "Category"
msgstr ""
@@ -4069,8 +4097,8 @@ msgid "Part category"
msgstr ""
#: part/models.py:847 part/templates/part/part_base.html:274
-#: templates/js/translated/part.js:618 templates/js/translated/part.js:1243
-#: templates/js/translated/stock.js:1683
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:1244
+#: templates/js/translated/stock.js:1639
msgid "IPN"
msgstr ""
@@ -4083,7 +4111,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:855 part/templates/part/part_base.html:281
-#: report/models.py:200 templates/js/translated/part.js:622
+#: report/models.py:200 templates/js/translated/part.js:623
msgid "Revision"
msgstr ""
@@ -4175,301 +4203,309 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2371
+#: part/models.py:2385
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2388
+#: part/models.py:2402
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2408 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:1311
+#: part/models.py:2422 templates/js/translated/part.js:1737
+#: templates/js/translated/stock.js:1267
msgid "Test Name"
msgstr ""
-#: part/models.py:2409
+#: part/models.py:2423
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2414
+#: part/models.py:2428
msgid "Test Description"
msgstr ""
-#: part/models.py:2415
+#: part/models.py:2429
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2420 templates/js/translated/part.js:1745
+#: part/models.py:2434 templates/js/translated/part.js:1746
#: templates/js/translated/table_filters.js:276
msgid "Required"
msgstr ""
-#: part/models.py:2421
+#: part/models.py:2435
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2426 templates/js/translated/part.js:1753
+#: part/models.py:2440 templates/js/translated/part.js:1754
msgid "Requires Value"
msgstr ""
-#: part/models.py:2427
+#: part/models.py:2441
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2432 templates/js/translated/part.js:1760
+#: part/models.py:2446 templates/js/translated/part.js:1761
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2433
+#: part/models.py:2447
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2444
+#: part/models.py:2458
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2480
+#: part/models.py:2494
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2488
+#: part/models.py:2502
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2495
+#: part/models.py:2509
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2525
+#: part/models.py:2539
msgid "Parent Part"
msgstr ""
-#: part/models.py:2527 part/models.py:2576 part/models.py:2577
+#: part/models.py:2541 part/models.py:2590 part/models.py:2591
#: templates/InvenTree/settings/settings.html:218
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2529
+#: part/models.py:2543
msgid "Data"
msgstr ""
-#: part/models.py:2529
+#: part/models.py:2543
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2581 templates/InvenTree/settings/settings.html:227
+#: part/models.py:2595 templates/InvenTree/settings/settings.html:227
msgid "Default Value"
msgstr ""
-#: part/models.py:2582
+#: part/models.py:2596
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2616
+#: part/models.py:2630
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2619 templates/js/translated/model_renderers.js:182
+#: part/models.py:2633 templates/js/translated/model_renderers.js:182
msgid "Part ID"
msgstr ""
-#: part/models.py:2620
+#: part/models.py:2634
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2623
+#: part/models.py:2637
msgid "Part Name"
msgstr ""
-#: part/models.py:2627
+#: part/models.py:2641
msgid "Part IPN"
msgstr ""
-#: part/models.py:2628
+#: part/models.py:2642
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2645
msgid "Level"
msgstr ""
-#: part/models.py:2632
+#: part/models.py:2646
msgid "BOM level"
msgstr ""
-#: part/models.py:2692
+#: part/models.py:2707
msgid "Select parent part"
msgstr ""
-#: part/models.py:2700
+#: part/models.py:2715
msgid "Sub part"
msgstr ""
-#: part/models.py:2701
+#: part/models.py:2716
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2707
+#: part/models.py:2722
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2709 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:791 templates/js/translated/bom.js:865
+#: part/models.py:2724 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2709
+#: part/models.py:2724
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2712 part/templates/part/upload_bom.html:55
+#: part/models.py:2727 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2713
+#: part/models.py:2728
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2716
+#: part/models.py:2731
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2719
+#: part/models.py:2734
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2721
+#: part/models.py:2736
msgid "Checksum"
msgstr ""
-#: part/models.py:2721
+#: part/models.py:2736
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2725 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:882
+#: part/models.py:2740 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:880
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2726
+#: part/models.py:2741
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2731 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:874
+#: part/models.py:2746 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:872
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2732
+#: part/models.py:2747
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2817 stock/models.py:394
+#: part/models.py:2832 stock/models.py:446
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2826 part/models.py:2828
+#: part/models.py:2841 part/models.py:2843
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2957
+#: part/models.py:2972
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2979
+#: part/models.py:2994
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2991
+#: part/models.py:3006
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2999
+#: part/models.py:3014
msgid "Substitute part"
msgstr ""
-#: part/models.py:3010
+#: part/models.py:3025
msgid "Part 1"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3029
msgid "Part 2"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3029
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3046
+#: part/models.py:3061
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
-#: part/serializers.py:667
+#: part/serializers.py:670
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:678
+#: part/serializers.py:681
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:679
+#: part/serializers.py:682
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:684
+#: part/serializers.py:687
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:685
+#: part/serializers.py:688
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:690
+#: part/serializers.py:693
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:691
+#: part/serializers.py:694
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:699
+msgid "Copy Substitute Parts"
+msgstr ""
+
+#: part/serializers.py:700
+msgid "Copy substitute parts when duplicate BOM items"
+msgstr ""
+
+#: part/serializers.py:744
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:735
+#: part/serializers.py:745
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:762
+#: part/serializers.py:772
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:805
+#: part/serializers.py:815
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:808
+#: part/serializers.py:818
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:811
+#: part/serializers.py:821
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:820
+#: part/serializers.py:830
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:828
+#: part/serializers.py:838
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:847
+#: part/serializers.py:857
msgid "At least one BOM item is required"
msgstr ""
@@ -4496,7 +4532,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:279
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:274
msgid "BOM actions"
msgstr ""
@@ -4548,7 +4584,7 @@ msgstr ""
msgid "Top level part category"
msgstr ""
-#: part/templates/part/category.html:114 part/templates/part/category.html:205
+#: part/templates/part/category.html:114 part/templates/part/category.html:202
#: part/templates/part/category_sidebar.html:7
msgid "Subcategories"
msgstr ""
@@ -4557,55 +4593,51 @@ msgstr ""
msgid "Parts (Including subcategories)"
msgstr ""
-#: part/templates/part/category.html:156
-msgid "Export Part Data"
-msgstr ""
-
-#: part/templates/part/category.html:157 part/templates/part/category.html:181
-msgid "Export"
-msgstr ""
-
-#: part/templates/part/category.html:160
+#: part/templates/part/category.html:157
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:161 templates/js/translated/bom.js:365
+#: part/templates/part/category.html:158 templates/js/translated/bom.js:365
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:175
+#: part/templates/part/category.html:172
msgid "Set category"
msgstr ""
-#: part/templates/part/category.html:175
+#: part/templates/part/category.html:172
msgid "Set Category"
msgstr ""
-#: part/templates/part/category.html:179
+#: part/templates/part/category.html:176
msgid "Print Labels"
msgstr ""
-#: part/templates/part/category.html:181
+#: part/templates/part/category.html:178
+msgid "Export"
+msgstr ""
+
+#: part/templates/part/category.html:178
msgid "Export Data"
msgstr ""
-#: part/templates/part/category.html:195
+#: part/templates/part/category.html:192
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:288
+#: part/templates/part/category.html:285
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:315
+#: part/templates/part/category.html:305
msgid "Create Part"
msgstr ""
-#: part/templates/part/category.html:318
+#: part/templates/part/category.html:308
msgid "Create another part after this one"
msgstr ""
-#: part/templates/part/category.html:319
+#: part/templates/part/category.html:309
msgid "Part created successfully"
msgstr ""
@@ -4676,155 +4708,150 @@ msgstr ""
msgid "Part Stock"
msgstr ""
-#: part/templates/part/detail.html:33
-#, python-format
-msgid "Showing stock for all variants of %(full_name)s"
-msgstr ""
-
-#: part/templates/part/detail.html:43
+#: part/templates/part/detail.html:38
msgid "Part Stock Allocations"
msgstr ""
-#: part/templates/part/detail.html:60
+#: part/templates/part/detail.html:55
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:65
+#: part/templates/part/detail.html:60
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:122
+#: part/templates/part/detail.html:117
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:168
+#: part/templates/part/detail.html:163
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:172
+#: part/templates/part/detail.html:167
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:173
+#: part/templates/part/detail.html:168
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:200
+#: part/templates/part/detail.html:195
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:237 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:52
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:241 part/templates/part/detail.html:242
+#: part/templates/part/detail.html:236 part/templates/part/detail.html:237
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:262 part/templates/part/part_sidebar.html:18
+#: part/templates/part/detail.html:257 part/templates/part/part_sidebar.html:18
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:267
+#: part/templates/part/detail.html:262
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:271 templates/js/translated/bom.js:283
+#: part/templates/part/detail.html:266 templates/js/translated/bom.js:283
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:268
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:283
+#: part/templates/part/detail.html:278
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:285 templates/js/translated/part.js:272
+#: part/templates/part/detail.html:279 templates/js/translated/part.js:272
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:287
+#: part/templates/part/detail.html:280
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:285
msgid "New BOM Item"
msgstr ""
-#: part/templates/part/detail.html:293
+#: part/templates/part/detail.html:286
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:306
+#: part/templates/part/detail.html:299
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:323
+#: part/templates/part/detail.html:316
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:348
+#: part/templates/part/detail.html:341
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:363
+#: part/templates/part/detail.html:356
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:391
+#: part/templates/part/detail.html:384
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:407
+#: part/templates/part/detail.html:400
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:589
+#: part/templates/part/detail.html:582
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:590
+#: part/templates/part/detail.html:583
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:639
+#: part/templates/part/detail.html:632
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:696
+#: part/templates/part/detail.html:689
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:704
+#: part/templates/part/detail.html:697
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:801
+#: part/templates/part/detail.html:794
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:858
+#: part/templates/part/detail.html:844
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:971
+#: part/templates/part/detail.html:957
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:983
+#: part/templates/part/detail.html:969
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:995
+#: part/templates/part/detail.html:981
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1084
+#: part/templates/part/detail.html:1070
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4969,7 +4996,7 @@ msgstr ""
#: templates/js/translated/company.js:508
#: templates/js/translated/company.js:765
#: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:533 templates/js/translated/part.js:610
+#: templates/js/translated/part.js:534 templates/js/translated/part.js:611
msgid "Inactive"
msgstr ""
@@ -4983,7 +5010,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2356
+#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2444
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5000,12 +5027,12 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:903
+#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:901
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1154
-#: templates/js/translated/part.js:1327
+#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1155
+#: templates/js/translated/part.js:1328
msgid "Building"
msgstr ""
@@ -5057,7 +5084,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:857
+#: templates/js/translated/bom.js:855
msgid "No supplier pricing available"
msgstr ""
@@ -5177,7 +5204,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:851
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849
msgid "Supplier Cost"
msgstr ""
@@ -5199,7 +5226,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1390
+#: part/templates/part/prices.html:215 part/views.py:1325
msgid "Add Internal Price Break"
msgstr ""
@@ -5219,9 +5246,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813
-#: templates/js/translated/part.js:497 templates/js/translated/part.js:1144
-#: templates/js/translated/part.js:1331
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811
+#: templates/js/translated/part.js:498 templates/js/translated/part.js:1145
+#: templates/js/translated/part.js:1332
msgid "No Stock"
msgstr ""
@@ -5275,100 +5302,100 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:172
+#: part/templatetags/inventree_extras.py:174
msgid "Unknown database"
msgstr ""
-#: part/views.py:90
+#: part/views.py:88
msgid "Set Part Category"
msgstr ""
-#: part/views.py:140
+#: part/views.py:138
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:212
+#: part/views.py:210
msgid "Match References"
msgstr ""
-#: part/views.py:509
+#: part/views.py:507
msgid "None"
msgstr ""
-#: part/views.py:568
+#: part/views.py:566
msgid "Part QR Code"
msgstr ""
-#: part/views.py:670
+#: part/views.py:668
msgid "Select Part Image"
msgstr ""
-#: part/views.py:696
+#: part/views.py:694
msgid "Updated part image"
msgstr ""
-#: part/views.py:699
+#: part/views.py:697
msgid "Part image not found"
msgstr ""
-#: part/views.py:850
+#: part/views.py:785
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:857
+#: part/views.py:792
msgid "Part was deleted"
msgstr ""
-#: part/views.py:866
+#: part/views.py:801
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1015
+#: part/views.py:950
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1025
+#: part/views.py:960
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1032
+#: part/views.py:967
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1091 templates/js/translated/part.js:315
+#: part/views.py:1026 templates/js/translated/part.js:315
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1129
+#: part/views.py:1064
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1135
+#: part/views.py:1070
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1144
+#: part/views.py:1079
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1245
+#: part/views.py:1180
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1301
+#: part/views.py:1236
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1323
+#: part/views.py:1258
msgid "Added new price break"
msgstr ""
-#: part/views.py:1399
+#: part/views.py:1334
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1407
+#: part/views.py:1342
msgid "Delete Internal Price Break"
msgstr ""
@@ -5574,12 +5601,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:556 stock/templates/stock/item_base.html:151
-#: templates/js/translated/build.js:373 templates/js/translated/build.js:521
-#: templates/js/translated/build.js:919 templates/js/translated/build.js:1295
+#: stock/models.py:608 stock/templates/stock/item_base.html:151
+#: templates/js/translated/build.js:374 templates/js/translated/build.js:522
+#: templates/js/translated/build.js:920 templates/js/translated/build.js:1296
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:99 templates/js/translated/order.js:2062
-#: templates/js/translated/order.js:2151 templates/js/translated/stock.js:423
+#: templates/js/translated/order.js:99 templates/js/translated/order.js:2150
+#: templates/js/translated/order.js:2239 templates/js/translated/stock.js:422
msgid "Serial Number"
msgstr ""
@@ -5588,19 +5615,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:2052
+#: stock/models.py:2104
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:2058
+#: stock/models.py:2110
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:50
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:924 templates/js/translated/stock.js:2657
+#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2613
msgid "Date"
msgstr ""
@@ -5618,26 +5645,26 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756
-#: templates/js/translated/stock.js:2910
+#: templates/js/translated/stock.js:542 templates/js/translated/stock.js:712
+#: templates/js/translated/stock.js:2866
msgid "Serial"
msgstr ""
-#: stock/api.py:501
+#: stock/api.py:503
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:508
+#: stock/api.py:510
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:533
+#: stock/api.py:535
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/forms.py:74 stock/forms.py:198 stock/models.py:613
+#: stock/forms.py:74 stock/forms.py:198 stock/models.py:665
#: stock/templates/stock/item_base.html:188
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1791
msgid "Expiry Date"
msgstr ""
@@ -5677,228 +5704,228 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:62 stock/models.py:650
+#: stock/models.py:62 stock/models.py:702
#: stock/templates/stock/item_base.html:402
msgid "Owner"
msgstr ""
-#: stock/models.py:63 stock/models.py:651
+#: stock/models.py:63 stock/models.py:703
msgid "Select Owner"
msgstr ""
-#: stock/models.py:375
+#: stock/models.py:427
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:463
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:421 stock/models.py:430
+#: stock/models.py:473 stock/models.py:482
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:422
+#: stock/models.py:474
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:444
+#: stock/models.py:496
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:450
+#: stock/models.py:502
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:457
+#: stock/models.py:509
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:500
+#: stock/models.py:552
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:509
+#: stock/models.py:561
msgid "Base part"
msgstr ""
-#: stock/models.py:517
+#: stock/models.py:569
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:523 stock/templates/stock/location.html:16
+#: stock/models.py:575 stock/templates/stock/location.html:16
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:526
+#: stock/models.py:578
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:585
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:539 stock/templates/stock/item_base.html:277
+#: stock/models.py:591 stock/templates/stock/item_base.html:277
msgid "Installed In"
msgstr ""
-#: stock/models.py:542
+#: stock/models.py:594
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:558
+#: stock/models.py:610
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:572
+#: stock/models.py:624
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:576
+#: stock/models.py:628
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:585
+#: stock/models.py:637
msgid "Source Build"
msgstr ""
-#: stock/models.py:587
+#: stock/models.py:639
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:598
+#: stock/models.py:650
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:601
+#: stock/models.py:653
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:607
+#: stock/models.py:659
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:614
+#: stock/models.py:666
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:627
+#: stock/models.py:679
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:627
+#: stock/models.py:679
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:637 stock/templates/stock/item.html:121
+#: stock/models.py:689 stock/templates/stock/item.html:121
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:646
+#: stock/models.py:698
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1171
+#: stock/models.py:1223
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1177
+#: stock/models.py:1229
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1183
+#: stock/models.py:1235
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1186
+#: stock/models.py:1238
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1189
+#: stock/models.py:1241
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1196
+#: stock/models.py:1248
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1267
+#: stock/models.py:1319
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1270
+#: stock/models.py:1322
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1273
+#: stock/models.py:1325
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1276
+#: stock/models.py:1328
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1279
+#: stock/models.py:1331
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1282
+#: stock/models.py:1334
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1289 stock/serializers.py:832
+#: stock/models.py:1341 stock/serializers.py:832
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1293
+#: stock/models.py:1345
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1297
+#: stock/models.py:1349
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1301
+#: stock/models.py:1353
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1473
+#: stock/models.py:1525
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1972
+#: stock/models.py:2024
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2029
+#: stock/models.py:2081
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2035
+#: stock/models.py:2087
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2053
+#: stock/models.py:2105
msgid "Test name"
msgstr ""
-#: stock/models.py:2059
+#: stock/models.py:2111
msgid "Test result"
msgstr ""
-#: stock/models.py:2065
+#: stock/models.py:2117
msgid "Test output value"
msgstr ""
-#: stock/models.py:2072
+#: stock/models.py:2124
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2078
+#: stock/models.py:2130
msgid "Test notes"
msgstr ""
@@ -5935,7 +5962,7 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:363 stock/views.py:1127
+#: stock/serializers.py:363 stock/views.py:1009
msgid "Serial numbers already exist"
msgstr ""
@@ -6052,11 +6079,11 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:147 templates/js/translated/stock.js:3019
+#: stock/templates/stock/item.html:147 templates/js/translated/stock.js:2975
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1479
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1435
msgid "Add Test Result"
msgstr ""
@@ -6070,7 +6097,7 @@ msgstr ""
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:46 templates/stock_table.html:24
+#: stock/templates/stock/item_base.html:46 templates/stock_table.html:21
msgid "Scan to Location"
msgstr ""
@@ -6083,15 +6110,15 @@ msgid "Stock adjustment actions"
msgstr ""
#: stock/templates/stock/item_base.html:69
-#: stock/templates/stock/location.html:52 templates/stock_table.html:50
+#: stock/templates/stock/location.html:52 templates/stock_table.html:47
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48
+#: stock/templates/stock/item_base.html:72 templates/stock_table.html:45
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49
+#: stock/templates/stock/item_base.html:75 templates/stock_table.html:46
msgid "Remove stock"
msgstr ""
@@ -6100,11 +6127,11 @@ msgid "Serialize stock"
msgstr ""
#: stock/templates/stock/item_base.html:82
-#: stock/templates/stock/location.html:58 templates/stock_table.html:51
+#: stock/templates/stock/location.html:58 templates/stock_table.html:48
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85 templates/stock_table.html:54
+#: stock/templates/stock/item_base.html:85 templates/stock_table.html:51
msgid "Assign to customer"
msgstr ""
@@ -6181,7 +6208,7 @@ msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:201
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1807
msgid "Last Updated"
msgstr ""
@@ -6218,7 +6245,7 @@ msgid "This stock item is serialized - it has a unique serial number and the qua
msgstr ""
#: stock/templates/stock/item_base.html:296
-#: templates/js/translated/build.js:1317
+#: templates/js/translated/build.js:1318
msgid "No location set"
msgstr ""
@@ -6320,11 +6347,11 @@ msgstr ""
msgid "Stock Locations"
msgstr ""
-#: stock/templates/stock/location.html:185 templates/stock_table.html:30
+#: stock/templates/stock/location.html:185 templates/stock_table.html:27
msgid "Printing Actions"
msgstr ""
-#: stock/templates/stock/location.html:189 templates/stock_table.html:34
+#: stock/templates/stock/location.html:189 templates/stock_table.html:31
msgid "Print labels"
msgstr ""
@@ -6348,7 +6375,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:749
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:631
msgid "Convert Stock Item"
msgstr ""
@@ -6369,95 +6396,95 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181 templates/js/translated/stock.js:139
+#: stock/views.py:152 templates/js/translated/stock.js:138
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:728 stock/views.py:854 stock/views.py:1136
+#: stock/views.py:259 stock/views.py:610 stock/views.py:736 stock/views.py:1018
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:274
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:293
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:302
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:342
+#: stock/views.py:313
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:353
+#: stock/views.py:324
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:370
+#: stock/views.py:341
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:371
+#: stock/views.py:342
msgid "Check the confirmation box"
msgstr ""
-#: stock/views.py:475
+#: stock/views.py:357
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:500
+#: stock/views.py:382
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:597 templates/js/translated/stock.js:1074
+#: stock/views.py:479 templates/js/translated/stock.js:1030
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:608
+#: stock/views.py:490
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:630 templates/js/translated/stock.js:332
+#: stock/views.py:512 templates/js/translated/stock.js:331
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:780
+#: stock/views.py:662
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:881
+#: stock/views.py:763
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1023 templates/js/translated/stock.js:312
+#: stock/views.py:905 templates/js/translated/stock.js:311
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1105
+#: stock/views.py:987
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1205
+#: stock/views.py:1087
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1218
+#: stock/views.py:1100
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1229
+#: stock/views.py:1111
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1236
+#: stock/views.py:1118
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1245
+#: stock/views.py:1127
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -7381,14 +7408,14 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1335
+#: templates/js/translated/bom.js:1340
msgid "Required Quantity"
msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:804 templates/js/translated/build.js:1411
-#: templates/js/translated/build.js:2057
+#: templates/js/translated/bom.js:802 templates/js/translated/build.js:1412
+#: templates/js/translated/build.js:2110
#: templates/js/translated/table_filters.js:178
msgid "Available"
msgstr ""
@@ -7580,7 +7607,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:982
msgid "Remove stock item"
msgstr ""
@@ -7635,12 +7662,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286
-#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518
+#: templates/js/translated/order.js:429 templates/js/translated/tables.js:53
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519
+#: templates/js/translated/order.js:430
msgid "Select file format"
msgstr ""
@@ -7716,275 +7743,307 @@ msgstr ""
msgid "Edit BOM Item Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:741
+#: templates/js/translated/bom.js:739
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:745 templates/js/translated/build.js:1393
+#: templates/js/translated/bom.js:743 templates/js/translated/build.js:1394
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:750
+#: templates/js/translated/bom.js:748
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:822
+#: templates/js/translated/bom.js:820
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:837
+#: templates/js/translated/bom.js:835
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:844
+#: templates/js/translated/bom.js:842
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:893 templates/js/translated/bom.js:982
+#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:953
+#: templates/js/translated/bom.js:951
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:955
+#: templates/js/translated/bom.js:953
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:957
+#: templates/js/translated/bom.js:955
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138
+#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:961 templates/js/translated/bom.js:1121
+#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1060 templates/js/translated/build.js:1137
+#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1138
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1116
+#: templates/js/translated/bom.js:1121
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:1318 templates/js/translated/build.js:1377
+#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1378
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1340
+#: templates/js/translated/bom.js:1345
msgid "Inherited from parent BOM"
msgstr ""
-#: templates/js/translated/build.js:85
+#: templates/js/translated/build.js:86
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:119
+#: templates/js/translated/build.js:120
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:140
+#: templates/js/translated/build.js:141
msgid "Build order is ready to be completed"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:146
msgid "Build Order is incomplete"
msgstr ""
-#: templates/js/translated/build.js:173
+#: templates/js/translated/build.js:174
msgid "Complete Build Order"
msgstr ""
-#: templates/js/translated/build.js:214 templates/js/translated/stock.js:92
-#: templates/js/translated/stock.js:181
+#: templates/js/translated/build.js:215 templates/js/translated/stock.js:91
+#: templates/js/translated/stock.js:180
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:216 templates/js/translated/stock.js:94
-#: templates/js/translated/stock.js:183
+#: templates/js/translated/build.js:217 templates/js/translated/stock.js:93
+#: templates/js/translated/stock.js:182
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/build.js:225
+#: templates/js/translated/build.js:226
msgid "The Bill of Materials contains trackable parts"
msgstr ""
-#: templates/js/translated/build.js:226
+#: templates/js/translated/build.js:227
msgid "Build outputs must be generated individually"
msgstr ""
-#: templates/js/translated/build.js:234
+#: templates/js/translated/build.js:235
msgid "Trackable parts can have serial numbers specified"
msgstr ""
-#: templates/js/translated/build.js:235
+#: templates/js/translated/build.js:236
msgid "Enter serial numbers to generate multiple single build outputs"
msgstr ""
-#: templates/js/translated/build.js:242
+#: templates/js/translated/build.js:243
msgid "Create Build Output"
msgstr ""
-#: templates/js/translated/build.js:273
+#: templates/js/translated/build.js:274
msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:284
+#: templates/js/translated/build.js:285
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:293
+#: templates/js/translated/build.js:294
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:301
+#: templates/js/translated/build.js:302
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:324
+#: templates/js/translated/build.js:325
msgid "Are you sure you wish to unallocate stock items from this build?"
msgstr ""
-#: templates/js/translated/build.js:342
+#: templates/js/translated/build.js:343
msgid "Unallocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:360 templates/js/translated/build.js:508
+#: templates/js/translated/build.js:361 templates/js/translated/build.js:509
msgid "Select Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:361 templates/js/translated/build.js:509
+#: templates/js/translated/build.js:362 templates/js/translated/build.js:510
msgid "At least one build output must be selected"
msgstr ""
-#: templates/js/translated/build.js:415 templates/js/translated/build.js:563
+#: templates/js/translated/build.js:416 templates/js/translated/build.js:564
msgid "Output"
msgstr ""
-#: templates/js/translated/build.js:431
+#: templates/js/translated/build.js:432
msgid "Complete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:576
+#: templates/js/translated/build.js:577
msgid "Delete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:665
+#: templates/js/translated/build.js:666
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:703 templates/js/translated/order.js:1965
+#: templates/js/translated/build.js:704 templates/js/translated/order.js:2053
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:885
+#: templates/js/translated/build.js:886
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1334 templates/js/translated/build.js:2068
-#: templates/js/translated/order.js:2099
+#: templates/js/translated/build.js:1335 templates/js/translated/build.js:2121
+#: templates/js/translated/order.js:2187
msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1336 templates/js/translated/build.js:2069
-#: templates/js/translated/order.js:2100
+#: templates/js/translated/build.js:1337 templates/js/translated/build.js:2122
+#: templates/js/translated/order.js:2188
msgid "Delete stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1354
+#: templates/js/translated/build.js:1355
msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:1364
+#: templates/js/translated/build.js:1365
msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:1389
+#: templates/js/translated/build.js:1390
msgid "Substitute parts available"
msgstr ""
-#: templates/js/translated/build.js:1406
+#: templates/js/translated/build.js:1407
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1416 templates/js/translated/build.js:1656
-#: templates/js/translated/build.js:2064 templates/js/translated/order.js:2366
+#: templates/js/translated/build.js:1417 templates/js/translated/build.js:1667
+#: templates/js/translated/build.js:2117 templates/js/translated/order.js:2454
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1472 templates/js/translated/order.js:2446
+#: templates/js/translated/build.js:1473 templates/js/translated/order.js:2534
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:1476 templates/stock_table.html:53
+#: templates/js/translated/build.js:1477 templates/stock_table.html:50
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1479 templates/js/translated/order.js:2439
+#: templates/js/translated/build.js:1480 templates/js/translated/order.js:2527
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:1558 templates/js/translated/order.js:1616
-msgid "Specify stock allocation quantity"
-msgstr ""
-
-#: templates/js/translated/build.js:1629 templates/js/translated/label.js:134
-#: templates/js/translated/order.js:1667 templates/js/translated/report.js:225
+#: templates/js/translated/build.js:1519 templates/js/translated/label.js:134
+#: templates/js/translated/order.js:1755 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1630 templates/js/translated/order.js:1668
+#: templates/js/translated/build.js:1520 templates/js/translated/order.js:1756
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:1644 templates/js/translated/order.js:1682
+#: templates/js/translated/build.js:1569 templates/js/translated/order.js:1704
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:1640
+msgid "All Parts Allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:1641
+msgid "All selected parts have been fully allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:1655 templates/js/translated/order.js:1770
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1717
+#: templates/js/translated/build.js:1684 templates/js/translated/order.js:1805
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1674
+#: templates/js/translated/build.js:1685
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1730
+#: templates/js/translated/build.js:1696 templates/js/translated/order.js:1818
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1757 templates/js/translated/order.js:1807
+#: templates/js/translated/build.js:1768 templates/js/translated/order.js:1895
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1875
+#: templates/js/translated/build.js:1865
+msgid "Automatic Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1866
+msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
+msgstr ""
+
+#: templates/js/translated/build.js:1868
+msgid "If a location is specifed, stock will only be allocated from that location"
+msgstr ""
+
+#: templates/js/translated/build.js:1869
+msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
+msgstr ""
+
+#: templates/js/translated/build.js:1870
+msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
+msgstr ""
+
+#: templates/js/translated/build.js:1890
+msgid "Allocate Stock Items"
+msgstr ""
+
+#: templates/js/translated/build.js:1928
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1892 templates/js/translated/part.js:1235
-#: templates/js/translated/part.js:1646 templates/js/translated/stock.js:1643
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/build.js:1945 templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1647 templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:2567
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1912
+#: templates/js/translated/build.js:1965
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1976 templates/js/translated/stock.js:2823
+#: templates/js/translated/build.js:2029 templates/js/translated/stock.js:2779
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1988
+#: templates/js/translated/build.js:2041
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:2045
+#: templates/js/translated/build.js:2098
msgid "No parts allocated for"
msgstr ""
@@ -8049,34 +8108,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:517
-#: templates/js/translated/part.js:602
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:518
+#: templates/js/translated/part.js:603
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:521
-#: templates/js/translated/part.js:606
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:522
+#: templates/js/translated/part.js:607
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:696
+#: templates/js/translated/company.js:631 templates/js/translated/part.js:697
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:738
+#: templates/js/translated/company.js:668 templates/js/translated/part.js:739
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:739
+#: templates/js/translated/company.js:669 templates/js/translated/part.js:740
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:756
+#: templates/js/translated/company.js:688 templates/js/translated/part.js:757
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:768
+#: templates/js/translated/company.js:699 templates/js/translated/part.js:769
msgid "Delete Parameter"
msgstr ""
@@ -8085,12 +8144,12 @@ msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:429
+#: templates/js/translated/filters.js:441
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:430
+#: templates/js/translated/filters.js:442
msgid "false"
msgstr ""
@@ -8098,19 +8157,23 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:286
+#: templates/js/translated/filters.js:288
+msgid "Download data"
+msgstr ""
+
+#: templates/js/translated/filters.js:291
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:290
+#: templates/js/translated/filters.js:295
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:293
+#: templates/js/translated/filters.js:298
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:338
+#: templates/js/translated/filters.js:350
msgid "Create filter"
msgstr ""
@@ -8181,7 +8244,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1050
+#: templates/js/translated/stock.js:1006
msgid "Select Stock Items"
msgstr ""
@@ -8354,206 +8417,214 @@ msgstr ""
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:366
+#: templates/js/translated/order.js:426
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:460
+#: templates/js/translated/order.js:520
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:461
+#: templates/js/translated/order.js:521
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:481 templates/js/translated/order.js:580
+#: templates/js/translated/order.js:541 templates/js/translated/order.js:640
msgid "Add batch code"
msgstr ""
-#: templates/js/translated/order.js:487 templates/js/translated/order.js:591
+#: templates/js/translated/order.js:547 templates/js/translated/order.js:651
msgid "Add serial numbers"
msgstr ""
-#: templates/js/translated/order.js:499
+#: templates/js/translated/order.js:559
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:563 templates/js/translated/stock.js:2263
+#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2219
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:652
+#: templates/js/translated/order.js:712
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:653
+#: templates/js/translated/order.js:713
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:655
+#: templates/js/translated/order.js:715
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/order.js:674
+#: templates/js/translated/order.js:734
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:675
+#: templates/js/translated/order.js:735
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:865 templates/js/translated/part.js:809
+#: templates/js/translated/order.js:925 templates/js/translated/part.js:810
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:890 templates/js/translated/order.js:1338
+#: templates/js/translated/order.js:950 templates/js/translated/order.js:1426
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:1018 templates/js/translated/order.js:2496
+#: templates/js/translated/order.js:1074 templates/js/translated/order.js:2585
+msgid "Duplicate Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:1104 templates/js/translated/order.js:2607
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1030 templates/js/translated/order.js:2507
+#: templates/js/translated/order.js:1117 templates/js/translated/order.js:2618
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:1073
+#: templates/js/translated/order.js:1160
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:1100 templates/js/translated/order.js:2255
+#: templates/js/translated/order.js:1187 templates/js/translated/order.js:2343
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:1154 templates/js/translated/order.js:2280
-#: templates/js/translated/part.js:1863 templates/js/translated/part.js:2074
+#: templates/js/translated/order.js:1241 templates/js/translated/order.js:2368
+#: templates/js/translated/part.js:1864 templates/js/translated/part.js:2075
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1169 templates/js/translated/order.js:2296
+#: templates/js/translated/order.js:1256 templates/js/translated/order.js:2384
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:1210 templates/js/translated/order.js:2338
-#: templates/js/translated/part.js:918
+#: templates/js/translated/order.js:1297 templates/js/translated/order.js:2426
+#: templates/js/translated/part.js:919
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:1269 templates/js/translated/part.js:964
+#: templates/js/translated/order.js:1356 templates/js/translated/part.js:965
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1273 templates/js/translated/order.js:2452
+#: templates/js/translated/order.js:1360 templates/js/translated/order.js:2540
+msgid "Duplicate line item"
+msgstr ""
+
+#: templates/js/translated/order.js:1361 templates/js/translated/order.js:2541
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:1274 templates/js/translated/order.js:2456
+#: templates/js/translated/order.js:1362 templates/js/translated/order.js:2545
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1314
+#: templates/js/translated/order.js:1402
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1352
+#: templates/js/translated/order.js:1440
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1439
+#: templates/js/translated/order.js:1527
msgid "Edit shipment"
msgstr ""
-#: templates/js/translated/order.js:1442
+#: templates/js/translated/order.js:1530
msgid "Complete shipment"
msgstr ""
-#: templates/js/translated/order.js:1447
+#: templates/js/translated/order.js:1535
msgid "Delete shipment"
msgstr ""
-#: templates/js/translated/order.js:1467
+#: templates/js/translated/order.js:1555
msgid "Edit Shipment"
msgstr ""
-#: templates/js/translated/order.js:1484
+#: templates/js/translated/order.js:1572
msgid "Delete Shipment"
msgstr ""
-#: templates/js/translated/order.js:1518
+#: templates/js/translated/order.js:1606
msgid "No matching shipments found"
msgstr ""
-#: templates/js/translated/order.js:1528
+#: templates/js/translated/order.js:1616
msgid "Shipment Reference"
msgstr ""
-#: templates/js/translated/order.js:1552
+#: templates/js/translated/order.js:1640
msgid "Not shipped"
msgstr ""
-#: templates/js/translated/order.js:1558
+#: templates/js/translated/order.js:1646
msgid "Tracking"
msgstr ""
-#: templates/js/translated/order.js:1718
+#: templates/js/translated/order.js:1806
msgid "Allocate Stock Items to Sales Order"
msgstr ""
-#: templates/js/translated/order.js:1926
+#: templates/js/translated/order.js:2014
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:2015
+#: templates/js/translated/order.js:2103
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:2032
+#: templates/js/translated/order.js:2120
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:2033
+#: templates/js/translated/order.js:2121
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:2076 templates/js/translated/order.js:2165
-#: templates/js/translated/stock.js:1559
+#: templates/js/translated/order.js:2164 templates/js/translated/order.js:2253
+#: templates/js/translated/stock.js:1515
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/order.js:2084 templates/js/translated/order.js:2174
+#: templates/js/translated/order.js:2172 templates/js/translated/order.js:2262
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:2436
+#: templates/js/translated/order.js:2524
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:2442
+#: templates/js/translated/order.js:2530
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:2449 templates/js/translated/order.js:2616
+#: templates/js/translated/order.js:2537 templates/js/translated/order.js:2727
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:2460
+#: templates/js/translated/order.js:2549
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:2463
+#: templates/js/translated/order.js:2552
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:2522
+#: templates/js/translated/order.js:2633
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:2624
+#: templates/js/translated/order.js:2735
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:2638
+#: templates/js/translated/order.js:2749
msgid "No matching line items"
msgstr ""
@@ -8677,117 +8748,117 @@ msgstr ""
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:481
+#: templates/js/translated/part.js:482
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:509 templates/js/translated/part.js:594
+#: templates/js/translated/part.js:510 templates/js/translated/part.js:595
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:513 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:514 templates/js/translated/part.js:599
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:525
+#: templates/js/translated/part.js:526
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:529
+#: templates/js/translated/part.js:530
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:644
+#: templates/js/translated/part.js:645
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1034
+#: templates/js/translated/part.js:1035
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1058
+#: templates/js/translated/part.js:1059
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1125 templates/js/translated/part.js:1385
+#: templates/js/translated/part.js:1126 templates/js/translated/part.js:1386
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1295
+#: templates/js/translated/part.js:1296
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1318
+#: templates/js/translated/part.js:1319
#: templates/js/translated/table_filters.js:425
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1409 templates/js/translated/part.js:1581
-#: templates/js/translated/stock.js:2572
+#: templates/js/translated/part.js:1410 templates/js/translated/part.js:1582
+#: templates/js/translated/stock.js:2528
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1425
+#: templates/js/translated/part.js:1426
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1600 templates/js/translated/stock.js:2591
+#: templates/js/translated/part.js:1601 templates/js/translated/stock.js:2547
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1664
+#: templates/js/translated/part.js:1665
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1678 templates/js/translated/stock.js:2635
+#: templates/js/translated/part.js:1679 templates/js/translated/stock.js:2591
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1722
+#: templates/js/translated/part.js:1723
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1773 templates/js/translated/stock.js:1270
+#: templates/js/translated/part.js:1774 templates/js/translated/stock.js:1226
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1774 templates/js/translated/stock.js:1271
-#: templates/js/translated/stock.js:1517
+#: templates/js/translated/part.js:1775 templates/js/translated/stock.js:1227
+#: templates/js/translated/stock.js:1473
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1780
+#: templates/js/translated/part.js:1781
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1802
+#: templates/js/translated/part.js:1803
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1816
+#: templates/js/translated/part.js:1817
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1841
+#: templates/js/translated/part.js:1842
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1896
+#: templates/js/translated/part.js:1897
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1897
+#: templates/js/translated/part.js:1898
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1998
+#: templates/js/translated/part.js:1999
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:2017
+#: templates/js/translated/part.js:2018
msgid "Single Price Difference"
msgstr ""
@@ -8861,368 +8932,356 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:102
+#: templates/js/translated/stock.js:101
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:111
+#: templates/js/translated/stock.js:110
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:154
+#: templates/js/translated/stock.js:153
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:194
+#: templates/js/translated/stock.js:193
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:233
+#: templates/js/translated/stock.js:232
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/stock.js:238
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:381
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:395
+#: templates/js/translated/stock.js:394
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:420
+#: templates/js/translated/stock.js:419
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425
+#: templates/js/translated/stock.js:423 templates/js/translated/stock.js:424
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:441
+#: templates/js/translated/stock.js:440
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:461
+#: templates/js/translated/stock.js:460
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:470
+#: templates/js/translated/stock.js:469
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:515
-msgid "Export Stock"
-msgstr ""
-
-#: templates/js/translated/stock.js:526
-msgid "Include Sublocations"
-msgstr ""
-
-#: templates/js/translated/stock.js:527
-msgid "Include stock items in sublocations"
-msgstr ""
-
-#: templates/js/translated/stock.js:636
+#: templates/js/translated/stock.js:592
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:637
+#: templates/js/translated/stock.js:593
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:714
+#: templates/js/translated/stock.js:670
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:715
+#: templates/js/translated/stock.js:671
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:717
+#: templates/js/translated/stock.js:673
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:718
+#: templates/js/translated/stock.js:674
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:804
+#: templates/js/translated/stock.js:760
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:805
+#: templates/js/translated/stock.js:761
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:900
+#: templates/js/translated/stock.js:856
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:901
+#: templates/js/translated/stock.js:857
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:907
+#: templates/js/translated/stock.js:863
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:908
+#: templates/js/translated/stock.js:864
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:912
+#: templates/js/translated/stock.js:868
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:913
+#: templates/js/translated/stock.js:869
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:917
+#: templates/js/translated/stock.js:873
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:918 users/models.py:213
+#: templates/js/translated/stock.js:874 users/models.py:213
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:922
+#: templates/js/translated/stock.js:878
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1011
+#: templates/js/translated/stock.js:967
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1011
+#: templates/js/translated/stock.js:967
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1051
+#: templates/js/translated/stock.js:1007
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1209
+#: templates/js/translated/stock.js:1165
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1211
+#: templates/js/translated/stock.js:1167
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1216
+#: templates/js/translated/stock.js:1172
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1263
+#: templates/js/translated/stock.js:1219
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1266
+#: templates/js/translated/stock.js:1222
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1292
+#: templates/js/translated/stock.js:1248
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1348
+#: templates/js/translated/stock.js:1304
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1500
+#: templates/js/translated/stock.js:1456
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1522
+#: templates/js/translated/stock.js:1478
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1551
+#: templates/js/translated/stock.js:1507
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1511
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1563
+#: templates/js/translated/stock.js:1519
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1569
+#: templates/js/translated/stock.js:1525
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1727
+#: templates/js/translated/stock.js:1683
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1732
+#: templates/js/translated/stock.js:1688
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1691
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1739
+#: templates/js/translated/stock.js:1695
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1741
+#: templates/js/translated/stock.js:1697
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1747
+#: templates/js/translated/stock.js:1703
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1749
+#: templates/js/translated/stock.js:1705
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1751
+#: templates/js/translated/stock.js:1707
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1756
+#: templates/js/translated/stock.js:1712
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1763
+#: templates/js/translated/stock.js:1719
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1765
+#: templates/js/translated/stock.js:1721
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1767
+#: templates/js/translated/stock.js:1723
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1771
+#: templates/js/translated/stock.js:1727
#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1821
+#: templates/js/translated/stock.js:1777
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1903
+#: templates/js/translated/stock.js:1859
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1941
+#: templates/js/translated/stock.js:1897
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1962 templates/js/translated/stock.js:2010
+#: templates/js/translated/stock.js:1918 templates/js/translated/stock.js:1966
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:2050
+#: templates/js/translated/stock.js:2006
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:2077
+#: templates/js/translated/stock.js:2033
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:2079
+#: templates/js/translated/stock.js:2035
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:2278
+#: templates/js/translated/stock.js:2234
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2292
+#: templates/js/translated/stock.js:2248
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2293
+#: templates/js/translated/stock.js:2249
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2472
+#: templates/js/translated/stock.js:2428
msgid "Allocated Quantity"
msgstr ""
-#: templates/js/translated/stock.js:2682
+#: templates/js/translated/stock.js:2638
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2707
+#: templates/js/translated/stock.js:2663
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2726
+#: templates/js/translated/stock.js:2682
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2745
+#: templates/js/translated/stock.js:2701
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2763
+#: templates/js/translated/stock.js:2719
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2786
+#: templates/js/translated/stock.js:2742
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2794
+#: templates/js/translated/stock.js:2750
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2835
+#: templates/js/translated/stock.js:2791
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2836
+#: templates/js/translated/stock.js:2792
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2887
+#: templates/js/translated/stock.js:2843
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2938
+#: templates/js/translated/stock.js:2894
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2974
+#: templates/js/translated/stock.js:2930
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2975
+#: templates/js/translated/stock.js:2931
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2977
+#: templates/js/translated/stock.js:2933
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2978
+#: templates/js/translated/stock.js:2934
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2979
+#: templates/js/translated/stock.js:2935
msgid "The Stock Item is serialized and does not belong to another item"
msgstr ""
-#: templates/js/translated/stock.js:2992
+#: templates/js/translated/stock.js:2948
msgid "Select part to install"
msgstr ""
@@ -9429,60 +9488,68 @@ msgstr ""
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:368
+#: templates/js/translated/tables.js:50
+msgid "Export Table Data"
+msgstr ""
+
+#: templates/js/translated/tables.js:54
+msgid "Select File Format"
+msgstr ""
+
+#: templates/js/translated/tables.js:433
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:371
+#: templates/js/translated/tables.js:436
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:376
+#: templates/js/translated/tables.js:441
msgid "Showing all rows"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:382 templates/search_form.html:6
+#: templates/js/translated/tables.js:447 templates/search_form.html:6
#: templates/search_form.html:7
msgid "Search"
msgstr ""
-#: templates/js/translated/tables.js:385
+#: templates/js/translated/tables.js:450
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:388
+#: templates/js/translated/tables.js:453
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:391
+#: templates/js/translated/tables.js:456
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:394
+#: templates/js/translated/tables.js:459
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:397
+#: templates/js/translated/tables.js:462
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:400
+#: templates/js/translated/tables.js:465
msgid "All"
msgstr ""
@@ -9586,63 +9653,59 @@ msgstr ""
msgid "Email settings not configured"
msgstr ""
-#: templates/stock_table.html:14
-msgid "Export Stock Information"
-msgstr ""
-
-#: templates/stock_table.html:20
+#: templates/stock_table.html:17
msgid "Barcode Actions"
msgstr ""
-#: templates/stock_table.html:36
+#: templates/stock_table.html:33
msgid "Print test reports"
msgstr ""
-#: templates/stock_table.html:43
+#: templates/stock_table.html:40
msgid "Stock Options"
msgstr ""
-#: templates/stock_table.html:48
+#: templates/stock_table.html:45
msgid "Add to selected stock items"
msgstr ""
-#: templates/stock_table.html:49
+#: templates/stock_table.html:46
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:50
+#: templates/stock_table.html:47
msgid "Stocktake selected stock items"
msgstr ""
-#: templates/stock_table.html:51
+#: templates/stock_table.html:48
msgid "Move selected stock items"
msgstr ""
-#: templates/stock_table.html:52
+#: templates/stock_table.html:49
msgid "Merge selected stock items"
msgstr ""
-#: templates/stock_table.html:52
+#: templates/stock_table.html:49
msgid "Merge stock"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:50
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:52
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:52
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:55
msgid "Delete selected items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:55
msgid "Delete stock"
msgstr ""
diff --git a/InvenTree/locale/it/LC_MESSAGES/django.po b/InvenTree/locale/it/LC_MESSAGES/django.po
index 24c52eac0c..b95278f630 100644
--- a/InvenTree/locale/it/LC_MESSAGES/django.po
+++ b/InvenTree/locale/it/LC_MESSAGES/django.po
@@ -1,10 +1,10 @@
-#: templates/js/translated/order.js:2090
+#: templates/js/translated/order.js:2178
msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-03-01 13:34+0000\n"
-"PO-Revision-Date: 2022-03-01 14:09\n"
+"POT-Creation-Date: 2022-03-07 04:31+0000\n"
+"PO-Revision-Date: 2022-03-07 04:47\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
"Language: it_IT\n"
@@ -86,7 +86,7 @@ msgid "Duplicate serial: {sn}"
msgstr ""
#: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435
-#: stock/views.py:1101
+#: stock/views.py:983
msgid "Invalid quantity provided"
msgstr "Quantità inserita non valida"
@@ -114,100 +114,100 @@ msgstr "Nessun numero di serie trovato"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Il numero dei numeri seriali univoci ({s}) deve essere uguale alla quantità ({q})"
-#: InvenTree/models.py:176
+#: InvenTree/models.py:185
msgid "Missing file"
msgstr "File mancante"
-#: InvenTree/models.py:177
+#: InvenTree/models.py:186
msgid "Missing external link"
msgstr "Link esterno mancante"
-#: InvenTree/models.py:188 stock/models.py:2071
+#: InvenTree/models.py:197 stock/models.py:2123
#: templates/js/translated/attachment.js:119
msgid "Attachment"
msgstr "Allegato"
-#: InvenTree/models.py:189
+#: InvenTree/models.py:198
msgid "Select file to attach"
msgstr "Seleziona file da allegare"
-#: InvenTree/models.py:195 company/models.py:131 company/models.py:348
+#: InvenTree/models.py:204 company/models.py:131 company/models.py:348
#: company/models.py:564 order/models.py:127 part/models.py:860
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1346
+#: templates/js/translated/company.js:829 templates/js/translated/part.js:1347
msgid "Link"
msgstr "Link"
-#: InvenTree/models.py:196 build/models.py:330 part/models.py:861
-#: stock/models.py:566
+#: InvenTree/models.py:205 build/models.py:332 part/models.py:861
+#: stock/models.py:618
msgid "Link to external URL"
msgstr "Link a URL esterno"
-#: InvenTree/models.py:199 templates/js/translated/attachment.js:163
+#: InvenTree/models.py:208 templates/js/translated/attachment.js:163
msgid "Comment"
msgstr "Commento"
-#: InvenTree/models.py:199
+#: InvenTree/models.py:208
msgid "File comment"
msgstr "Commento del file"
-#: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1277
+#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1277
#: common/models.py:1278 common/models.py:1506 common/models.py:1507
-#: part/models.py:2303 part/models.py:2323
+#: part/models.py:2317 part/models.py:2337
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2817
+#: templates/js/translated/stock.js:2773
msgid "User"
msgstr "Utente"
-#: InvenTree/models.py:209
+#: InvenTree/models.py:218
msgid "upload date"
msgstr "data caricamento"
-#: InvenTree/models.py:232
+#: InvenTree/models.py:241
msgid "Filename must not be empty"
msgstr "Il nome del file non deve essere vuoto"
-#: InvenTree/models.py:255
+#: InvenTree/models.py:264
msgid "Invalid attachment directory"
msgstr "Directory allegati non valida"
-#: InvenTree/models.py:265
+#: InvenTree/models.py:274
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Il nome del file contiene caratteri non validi '{c}'"
-#: InvenTree/models.py:268
+#: InvenTree/models.py:277
msgid "Filename missing extension"
msgstr "Nome file estensione mancante"
-#: InvenTree/models.py:275
+#: InvenTree/models.py:284
msgid "Attachment with this filename already exists"
msgstr "Esiste già un allegato con questo nome di file"
-#: InvenTree/models.py:282
+#: InvenTree/models.py:291
msgid "Error renaming file"
msgstr "Errore nella rinominazione del file"
-#: InvenTree/models.py:317
+#: InvenTree/models.py:326
msgid "Invalid choice"
msgstr "Scelta non valida"
-#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1492
+#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1492
#: company/models.py:415 label/models.py:112 part/models.py:804
-#: part/models.py:2487 plugin/models.py:40 report/models.py:181
+#: part/models.py:2501 plugin/models.py:40 report/models.py:181
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:48
#: templates/InvenTree/settings/plugin.html:125
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:319
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:567
-#: templates/js/translated/part.js:706 templates/js/translated/part.js:1653
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/company.js:641 templates/js/translated/part.js:568
+#: templates/js/translated/part.js:707 templates/js/translated/part.js:1654
+#: templates/js/translated/stock.js:2573
msgid "Name"
msgstr "Nome"
-#: InvenTree/models.py:340 build/models.py:207
+#: InvenTree/models.py:349 build/models.py:209
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
@@ -219,28 +219,28 @@ msgstr "Nome"
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:92
#: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:765
-#: templates/js/translated/build.js:1920 templates/js/translated/company.js:345
+#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763
+#: templates/js/translated/build.js:1973 templates/js/translated/company.js:345
#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:911
-#: templates/js/translated/order.js:1105 templates/js/translated/order.js:1366
-#: templates/js/translated/part.js:626 templates/js/translated/part.js:1021
-#: templates/js/translated/part.js:1106 templates/js/translated/part.js:1276
-#: templates/js/translated/part.js:1672 templates/js/translated/part.js:1741
-#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2446
-#: templates/js/translated/stock.js:2629 templates/js/translated/stock.js:2667
+#: templates/js/translated/company.js:840 templates/js/translated/order.js:971
+#: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454
+#: templates/js/translated/part.js:627 templates/js/translated/part.js:1022
+#: templates/js/translated/part.js:1107 templates/js/translated/part.js:1277
+#: templates/js/translated/part.js:1673 templates/js/translated/part.js:1742
+#: templates/js/translated/stock.js:1656 templates/js/translated/stock.js:2402
+#: templates/js/translated/stock.js:2585 templates/js/translated/stock.js:2623
msgid "Description"
msgstr "Descrizione"
-#: InvenTree/models.py:341
+#: InvenTree/models.py:350
msgid "Description (optional)"
msgstr "Descrizione (opzionale)"
-#: InvenTree/models.py:349
+#: InvenTree/models.py:358
msgid "parent"
msgstr "genitore"
-#: InvenTree/serializers.py:65 part/models.py:2805
+#: InvenTree/serializers.py:65 part/models.py:2820
msgid "Must be a valid number"
msgstr "Deve essere un numero valido"
@@ -294,87 +294,87 @@ msgstr ""
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:665
msgid "German"
msgstr "Tedesco"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:666
msgid "Greek"
msgstr "Greco"
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:667
msgid "English"
msgstr "Inglese"
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:668
msgid "Spanish"
msgstr "Spagnolo"
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:669
msgid "Spanish (Mexican)"
msgstr "Spagnolo (Messicano)"
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:670
msgid "French"
msgstr "Francese"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:671
msgid "Hebrew"
msgstr "Ebraico"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:672
msgid "Hungarian"
msgstr "Ungherese"
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:673
msgid "Italian"
msgstr "Italiano"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:674
msgid "Japanese"
msgstr "Giapponese"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:675
msgid "Korean"
msgstr "Coreano"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:676
msgid "Dutch"
msgstr "Olandese"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:677
msgid "Norwegian"
msgstr "Norvegese"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:678
msgid "Polish"
msgstr "Polacco"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:679
msgid "Portugese"
msgstr "Portoghese"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:680
msgid "Russian"
msgstr "Russo"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:681
msgid "Swedish"
msgstr "Svedese"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:682
msgid "Thai"
msgstr "Thailandese"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:683
msgid "Turkish"
msgstr "Turco"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:684
msgid "Vietnamese"
msgstr "Vietnamita"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:685
msgid "Chinese"
msgstr "Cinese"
@@ -421,7 +421,7 @@ msgid "Returned"
msgstr "Reso"
#: InvenTree/status_codes.py:143 order/models.py:997
-#: templates/js/translated/order.js:2097 templates/js/translated/order.js:2394
+#: templates/js/translated/order.js:2185 templates/js/translated/order.js:2482
msgid "Shipped"
msgstr "Spedito"
@@ -501,7 +501,7 @@ msgstr "Diviso dall'elemento genitore"
msgid "Split child item"
msgstr "Dividi elemento figlio"
-#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2204
+#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2160
msgid "Merged stock items"
msgstr ""
@@ -593,43 +593,43 @@ msgstr "Le password devono coincidere"
msgid "System Information"
msgstr "Informazioni sistema"
-#: barcodes/api.py:54 barcodes/api.py:152
+#: barcodes/api.py:55 barcodes/api.py:156
msgid "Must provide barcode_data parameter"
msgstr "È necessario fornire il parametro barcode_data"
-#: barcodes/api.py:128
+#: barcodes/api.py:132
msgid "No match found for barcode data"
msgstr "Nessuna corrispondenza trovata per i dati del codice a barre"
-#: barcodes/api.py:130
+#: barcodes/api.py:134
msgid "Match found for barcode data"
msgstr "Corrispondenza trovata per i dati del codice a barre"
-#: barcodes/api.py:155
+#: barcodes/api.py:159
msgid "Must provide stockitem parameter"
msgstr "È necessario fornire il parametro stockitem"
-#: barcodes/api.py:162
+#: barcodes/api.py:166
msgid "No matching stock item found"
msgstr "Nessun elemento corrispondente trovato"
-#: barcodes/api.py:193
+#: barcodes/api.py:197
msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:197
+#: barcodes/api.py:201
msgid "Barcode already matches Stock Location"
msgstr ""
-#: barcodes/api.py:201
+#: barcodes/api.py:205
msgid "Barcode already matches Part"
msgstr ""
-#: barcodes/api.py:207 barcodes/api.py:219
+#: barcodes/api.py:211 barcodes/api.py:223
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: barcodes/api.py:225
+#: barcodes/api.py:229
msgid "Barcode associated with Stock Item"
msgstr ""
@@ -641,18 +641,18 @@ msgstr "Conferma annullamento"
msgid "Confirm build cancellation"
msgstr ""
-#: build/models.py:133
+#: build/models.py:135
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:139 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:676 templates/js/translated/stock.js:2422
+#: templates/js/translated/build.js:677 templates/js/translated/stock.js:2378
msgid "Build Order"
msgstr "Ordine di Produzione"
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:140 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:92
#: order/templates/order/so_sidebar.html:13
@@ -662,41 +662,41 @@ msgstr "Ordine di Produzione"
msgid "Build Orders"
msgstr "Ordini di Produzione"
-#: build/models.py:198
+#: build/models.py:200
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:213 order/models.py:563
-#: order/models.py:843 part/models.py:2716
+#: build/models.py:201 order/models.py:213 order/models.py:563
+#: order/models.py:843 part/models.py:2731
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:772 templates/js/translated/build.js:1401
-#: templates/js/translated/order.js:1136 templates/js/translated/order.js:2261
+#: templates/js/translated/bom.js:770 templates/js/translated/build.js:1402
+#: templates/js/translated/order.js:1223 templates/js/translated/order.js:2349
msgid "Reference"
msgstr "Riferimento"
-#: build/models.py:210
+#: build/models.py:212
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:219 build/templates/build/build_base.html:169
+#: build/models.py:221 build/templates/build/build_base.html:169
#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:222
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:225 build/templates/build/build_base.html:77
+#: build/models.py:227 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
#: order/models.py:912 order/models.py:986
#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359
-#: part/models.py:2249 part/models.py:2265 part/models.py:2284
-#: part/models.py:2301 part/models.py:2403 part/models.py:2525
-#: part/models.py:2615 part/models.py:2691 part/models.py:2998
-#: part/serializers.py:666 part/templates/part/part_app_base.html:8
+#: part/models.py:2263 part/models.py:2279 part/models.py:2298
+#: part/models.py:2315 part/models.py:2417 part/models.py:2539
+#: part/models.py:2629 part/models.py:2706 part/models.py:3013
+#: part/serializers.py:669 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: part/templates/part/upload_bom.html:52
@@ -707,231 +707,231 @@ msgstr ""
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551
-#: templates/js/translated/bom.js:730 templates/js/translated/build.js:902
-#: templates/js/translated/build.js:1270 templates/js/translated/build.js:1655
-#: templates/js/translated/build.js:1925 templates/js/translated/company.js:492
+#: templates/js/translated/bom.js:728 templates/js/translated/build.js:903
+#: templates/js/translated/build.js:1271 templates/js/translated/build.js:1666
+#: templates/js/translated/build.js:1978 templates/js/translated/company.js:492
#: templates/js/translated/company.js:749 templates/js/translated/order.js:84
-#: templates/js/translated/order.js:651 templates/js/translated/order.js:1090
-#: templates/js/translated/order.js:1693 templates/js/translated/order.js:2050
-#: templates/js/translated/order.js:2245 templates/js/translated/part.js:1006
-#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1254
-#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1657
-#: templates/js/translated/stock.js:2892 templates/js/translated/stock.js:2991
+#: templates/js/translated/order.js:711 templates/js/translated/order.js:1177
+#: templates/js/translated/order.js:1781 templates/js/translated/order.js:2138
+#: templates/js/translated/order.js:2333 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1088 templates/js/translated/part.js:1255
+#: templates/js/translated/stock.js:518 templates/js/translated/stock.js:683
+#: templates/js/translated/stock.js:890 templates/js/translated/stock.js:1613
+#: templates/js/translated/stock.js:2848 templates/js/translated/stock.js:2947
msgid "Part"
msgstr "Articolo"
-#: build/models.py:233
+#: build/models.py:235
msgid "Select part to build"
msgstr ""
-#: build/models.py:238
+#: build/models.py:240
msgid "Sales Order Reference"
msgstr "Numero di riferimento ordine di vendita"
-#: build/models.py:242
+#: build/models.py:244
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 templates/js/translated/build.js:1643
-#: templates/js/translated/order.js:1681
+#: build/models.py:249 build/serializers.py:729
+#: templates/js/translated/build.js:1654 templates/js/translated/order.js:1769
msgid "Source Location"
msgstr "Posizione Di Origine"
-#: build/models.py:251
+#: build/models.py:253
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr "Seleziona la posizione da cui prelevare la giacenza (lasciare vuoto per prelevare da qualsiasi posizione di magazzino)"
-#: build/models.py:256
+#: build/models.py:258
msgid "Destination Location"
msgstr "Posizione Della Destinazione"
-#: build/models.py:260
+#: build/models.py:262
msgid "Select location where the completed items will be stored"
msgstr "Seleziona il luogo in cui gli articoli completati saranno immagazzinati"
-#: build/models.py:264
+#: build/models.py:266
msgid "Build Quantity"
msgstr ""
-#: build/models.py:267
+#: build/models.py:269
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:271
+#: build/models.py:273
msgid "Completed items"
msgstr "Articoli completati"
-#: build/models.py:273
+#: build/models.py:275
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:277 part/templates/part/part_base.html:234
+#: build/models.py:279 part/templates/part/part_base.html:234
msgid "Build Status"
msgstr ""
-#: build/models.py:281
+#: build/models.py:283
msgid "Build status code"
msgstr ""
-#: build/models.py:285 build/serializers.py:218 order/serializers.py:272
-#: stock/models.py:570 templates/js/translated/order.js:513
+#: build/models.py:287 build/serializers.py:218 order/serializers.py:272
+#: stock/models.py:622 templates/js/translated/order.js:573
msgid "Batch Code"
msgstr ""
-#: build/models.py:289 build/serializers.py:219
+#: build/models.py:291 build/serializers.py:219
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:129 part/models.py:999
-#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1379
+#: build/models.py:294 order/models.py:129 part/models.py:999
+#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1467
msgid "Creation Date"
msgstr "Data di creazione"
-#: build/models.py:296 order/models.py:585
+#: build/models.py:298 order/models.py:585
msgid "Target completion date"
msgstr "Data completamento obiettivo"
-#: build/models.py:297
+#: build/models.py:299
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:255
-#: templates/js/translated/build.js:2002
+#: build/models.py:302 order/models.py:255
+#: templates/js/translated/build.js:2055
msgid "Completion Date"
msgstr "Data di completamento"
-#: build/models.py:306
+#: build/models.py:308
msgid "completed by"
msgstr "Completato da"
-#: build/models.py:314 templates/js/translated/build.js:1970
+#: build/models.py:316 templates/js/translated/build.js:2023
msgid "Issued by"
msgstr "Rilasciato da"
-#: build/models.py:315
+#: build/models.py:317
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:323 build/templates/build/build_base.html:190
+#: build/models.py:325 build/templates/build/build_base.html:190
#: build/templates/build/detail.html:116 order/models.py:143
#: order/templates/order/order_base.html:170
#: order/templates/order/sales_order_base.html:182 part/models.py:1003
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1982 templates/js/translated/order.js:945
+#: templates/js/translated/build.js:2035 templates/js/translated/order.js:1005
msgid "Responsible"
msgstr "Responsabile"
-#: build/models.py:324
+#: build/models.py:326
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:329 build/templates/build/detail.html:102
+#: build/models.py:331 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:564
+#: part/templates/part/part_base.html:354 stock/models.py:616
#: stock/templates/stock/item_base.html:352
msgid "External Link"
msgstr "Collegamento esterno"
-#: build/models.py:334 build/serializers.py:381
+#: build/models.py:336 build/serializers.py:381
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
#: order/models.py:147 order/models.py:845 order/models.py:1107
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/models.py:988
-#: part/templates/part/detail.html:146 part/templates/part/part_sidebar.html:57
+#: part/templates/part/detail.html:141 part/templates/part/part_sidebar.html:57
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:137 stock/forms.py:171 stock/models.py:636
-#: stock/models.py:1971 stock/models.py:2077 stock/serializers.py:332
+#: stock/forms.py:137 stock/forms.py:171 stock/models.py:688
+#: stock/models.py:2023 stock/models.py:2129 stock/serializers.py:332
#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:936
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1257
-#: templates/js/translated/order.js:1562 templates/js/translated/order.js:2419
-#: templates/js/translated/stock.js:1344 templates/js/translated/stock.js:1935
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934
+#: templates/js/translated/company.js:845 templates/js/translated/order.js:1344
+#: templates/js/translated/order.js:1650 templates/js/translated/order.js:2507
+#: templates/js/translated/stock.js:1300 templates/js/translated/stock.js:1891
msgid "Notes"
msgstr "Note"
-#: build/models.py:335
+#: build/models.py:337
msgid "Extra build notes"
msgstr ""
-#: build/models.py:748
+#: build/models.py:750
msgid "No build output specified"
msgstr ""
-#: build/models.py:751
+#: build/models.py:753
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:754
+#: build/models.py:756
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1060
+#: build/models.py:1162
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1069
+#: build/models.py:1171
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr "La quantità assegnata ({q}) non deve essere maggiore della quantità disponibile ({a})"
-#: build/models.py:1079
+#: build/models.py:1181
msgid "Stock item is over-allocated"
msgstr "L'articolo in giacenza è sovrallocato"
-#: build/models.py:1085 order/models.py:1225
+#: build/models.py:1187 order/models.py:1225
msgid "Allocation quantity must be greater than zero"
msgstr "La quantità di assegnazione deve essere maggiore di zero"
-#: build/models.py:1091
+#: build/models.py:1193
msgid "Quantity must be 1 for serialized stock"
msgstr "La quantità deve essere 1 per lo stock serializzato"
-#: build/models.py:1148
+#: build/models.py:1250
msgid "Selected stock item not found in BOM"
msgstr "Articolo in giacenza selezionato non trovato nel BOM"
-#: build/models.py:1217 stock/templates/stock/item_base.html:324
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898
+#: build/models.py:1319 stock/templates/stock/item_base.html:324
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1951
#: templates/navbar.html:35
msgid "Build"
msgstr "Produzione"
-#: build/models.py:1218
+#: build/models.py:1320
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1234 build/serializers.py:576 order/serializers.py:783
+#: build/models.py:1336 build/serializers.py:576 order/serializers.py:783
#: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635
#: stock/serializers.py:753 stock/templates/stock/item_base.html:9
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:346
-#: templates/js/translated/build.js:687 templates/js/translated/build.js:692
-#: templates/js/translated/build.js:1657 templates/js/translated/build.js:2050
-#: templates/js/translated/order.js:85 templates/js/translated/order.js:1694
-#: templates/js/translated/order.js:1949 templates/js/translated/order.js:1954
-#: templates/js/translated/order.js:2057 templates/js/translated/order.js:2147
-#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728
-#: templates/js/translated/stock.js:2753
+#: templates/js/translated/build.js:688 templates/js/translated/build.js:693
+#: templates/js/translated/build.js:1668 templates/js/translated/build.js:2103
+#: templates/js/translated/order.js:85 templates/js/translated/order.js:1782
+#: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:2235
+#: templates/js/translated/stock.js:519 templates/js/translated/stock.js:684
+#: templates/js/translated/stock.js:2709
msgid "Stock Item"
msgstr "Articoli in magazzino"
-#: build/models.py:1235
+#: build/models.py:1337
msgid "Source stock item"
msgstr "Origine giacenza articolo"
-#: build/models.py:1247 build/serializers.py:188
+#: build/models.py:1349 build/serializers.py:188
#: build/templates/build/build_base.html:82
#: build/templates/build/detail.html:35 common/models.py:1317
#: company/forms.py:42 company/templates/company/supplier_part.html:251
#: order/models.py:836 order/models.py:1265 order/serializers.py:903
#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144
-#: part/forms.py:160 part/forms.py:176 part/models.py:2707
-#: part/templates/part/detail.html:1008 part/templates/part/detail.html:1094
+#: part/forms.py:160 part/forms.py:176 part/models.py:2722
+#: part/templates/part/detail.html:994 part/templates/part/detail.html:1080
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_build_order_base.html:114
@@ -943,32 +943,32 @@ msgstr "Origine giacenza articolo"
#: stock/templates/stock/item_base.html:176
#: stock/templates/stock/item_base.html:241
#: stock/templates/stock/item_base.html:249
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:780
-#: templates/js/translated/build.js:375 templates/js/translated/build.js:523
-#: templates/js/translated/build.js:714 templates/js/translated/build.js:911
-#: templates/js/translated/build.js:921 templates/js/translated/build.js:1297
-#: templates/js/translated/build.js:1658
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778
+#: templates/js/translated/build.js:376 templates/js/translated/build.js:524
+#: templates/js/translated/build.js:715 templates/js/translated/build.js:912
+#: templates/js/translated/build.js:922 templates/js/translated/build.js:1298
+#: templates/js/translated/build.js:1669
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:101 templates/js/translated/order.js:1142
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:1976
-#: templates/js/translated/order.js:2064 templates/js/translated/order.js:2153
-#: templates/js/translated/order.js:2267 templates/js/translated/part.js:906
-#: templates/js/translated/part.js:1884 templates/js/translated/part.js:2007
-#: templates/js/translated/part.js:2085 templates/js/translated/stock.js:391
-#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758
-#: templates/js/translated/stock.js:2802 templates/js/translated/stock.js:2904
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:1229
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:2064
+#: templates/js/translated/order.js:2152 templates/js/translated/order.js:2241
+#: templates/js/translated/order.js:2355 templates/js/translated/part.js:907
+#: templates/js/translated/part.js:1885 templates/js/translated/part.js:2008
+#: templates/js/translated/part.js:2086 templates/js/translated/stock.js:390
+#: templates/js/translated/stock.js:544 templates/js/translated/stock.js:714
+#: templates/js/translated/stock.js:2758 templates/js/translated/stock.js:2860
msgid "Quantity"
msgstr "Quantità"
-#: build/models.py:1248
+#: build/models.py:1350
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1256
+#: build/models.py:1358
msgid "Install into"
msgstr "Installa in"
-#: build/models.py:1257
+#: build/models.py:1359
msgid "Destination stock item"
msgstr "Destinazione articolo in giacenza"
@@ -997,8 +997,8 @@ msgid "Enter quantity for build output"
msgstr "Inserisci la quantità per l'output di compilazione"
#: build/serializers.py:201 build/serializers.py:596 order/models.py:280
-#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:826
-#: stock/models.py:404 stock/models.py:1180 stock/serializers.py:305
+#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:836
+#: stock/models.py:456 stock/models.py:1232 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr "La quantità deve essere maggiore di zero"
@@ -1012,8 +1012,8 @@ msgstr ""
#: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907
#: stock/forms.py:78 stock/serializers.py:314
-#: templates/js/translated/order.js:524 templates/js/translated/stock.js:238
-#: templates/js/translated/stock.js:392
+#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237
+#: templates/js/translated/stock.js:391
msgid "Serial Numbers"
msgstr "Codice Seriale"
@@ -1029,7 +1029,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:275 stock/api.py:549
+#: build/serializers.py:275 stock/api.py:551
msgid "The following serial numbers already exist"
msgstr ""
@@ -1041,13 +1041,13 @@ msgstr ""
#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788
#: stock/serializers.py:1029 stock/templates/stock/item_base.html:292
#: templates/js/translated/barcode.js:384
-#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:699
-#: templates/js/translated/build.js:1309 templates/js/translated/order.js:551
-#: templates/js/translated/order.js:1961 templates/js/translated/order.js:2072
-#: templates/js/translated/order.js:2080 templates/js/translated/order.js:2161
-#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564
-#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936
-#: templates/js/translated/stock.js:1807 templates/js/translated/stock.js:2694
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700
+#: templates/js/translated/build.js:1310 templates/js/translated/order.js:611
+#: templates/js/translated/order.js:2049 templates/js/translated/order.js:2160
+#: templates/js/translated/order.js:2168 templates/js/translated/order.js:2249
+#: templates/js/translated/part.js:179 templates/js/translated/stock.js:520
+#: templates/js/translated/stock.js:685 templates/js/translated/stock.js:892
+#: templates/js/translated/stock.js:1763 templates/js/translated/stock.js:2650
msgid "Location"
msgstr "Posizione"
@@ -1058,10 +1058,10 @@ msgstr "Posizione per gli output di build completati"
#: build/serializers.py:377 build/templates/build/build_base.html:142
#: build/templates/build/detail.html:63 order/models.py:579
#: order/serializers.py:290 stock/templates/stock/item_base.html:182
-#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1954
-#: templates/js/translated/order.js:656 templates/js/translated/order.js:915
-#: templates/js/translated/order.js:1371 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2771 templates/js/translated/stock.js:2920
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2007
+#: templates/js/translated/order.js:716 templates/js/translated/order.js:975
+#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2727 templates/js/translated/stock.js:2876
msgid "Status"
msgstr "Stato"
@@ -1073,7 +1073,7 @@ msgstr ""
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:445 templates/js/translated/build.js:150
+#: build/serializers.py:445 templates/js/translated/build.js:151
msgid "Required stock has not been fully allocated"
msgstr ""
@@ -1085,7 +1085,7 @@ msgstr ""
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:461 templates/js/translated/build.js:154
+#: build/serializers.py:461 templates/js/translated/build.js:155
msgid "Required build quantity has not been completed"
msgstr ""
@@ -1097,8 +1097,8 @@ msgstr ""
msgid "No build outputs have been created for this build order"
msgstr ""
-#: build/serializers.py:501 build/serializers.py:550 part/models.py:2831
-#: part/models.py:2990
+#: build/serializers.py:501 build/serializers.py:550 part/models.py:2846
+#: part/models.py:3005
msgid "BOM Item"
msgstr "Distinta base (Bom)"
@@ -1135,6 +1135,26 @@ msgstr ""
msgid "Allocation items must be provided"
msgstr "Deve essere indicata l'allocazione dell'articolo"
+#: build/serializers.py:730
+msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
+msgstr ""
+
+#: build/serializers.py:735
+msgid "Interchangeable Stock"
+msgstr ""
+
+#: build/serializers.py:736
+msgid "Stock items in multiple locations can be used interchangeably"
+msgstr ""
+
+#: build/serializers.py:741
+msgid "Substitute Stock"
+msgstr ""
+
+#: build/serializers.py:742
+msgid "Allow allocation of substitute parts"
+msgstr ""
+
#: build/tasks.py:98
msgid "Stock required for build order"
msgstr ""
@@ -1206,9 +1226,9 @@ msgstr ""
#: order/templates/order/order_base.html:156
#: order/templates/order/sales_order_base.html:163
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1994 templates/js/translated/order.js:932
-#: templates/js/translated/order.js:1204 templates/js/translated/order.js:1387
-#: templates/js/translated/order.js:2330 templates/js/translated/part.js:910
+#: templates/js/translated/build.js:2047 templates/js/translated/order.js:992
+#: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475
+#: templates/js/translated/order.js:2418 templates/js/translated/part.js:911
msgid "Target Date"
msgstr "Data scadenza"
@@ -1230,7 +1250,7 @@ msgstr "In ritardo"
#: build/templates/build/build_base.html:163
#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
#: order/templates/order/sales_order_base.html:170
-#: templates/js/translated/build.js:1940
+#: templates/js/translated/build.js:1993
#: templates/js/translated/table_filters.js:365
msgid "Completed"
msgstr "Completato"
@@ -1242,7 +1262,7 @@ msgstr "Completato"
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:286
-#: templates/js/translated/order.js:1326 templates/js/translated/stock.js:2436
+#: templates/js/translated/order.js:1414 templates/js/translated/stock.js:2392
msgid "Sales Order"
msgstr "Ordini di Vendita"
@@ -1277,7 +1297,7 @@ msgid "Stock can be taken from any available location."
msgstr "Lo stock può essere prelevato da qualsiasi posizione disponibile."
#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133
-#: templates/js/translated/order.js:657 templates/js/translated/order.js:1246
+#: templates/js/translated/order.js:717 templates/js/translated/order.js:1333
msgid "Destination"
msgstr "Destinazione"
@@ -1285,13 +1305,13 @@ msgstr "Destinazione"
msgid "Destination location not specified"
msgstr "Posizione di destinazione non specificata"
-#: build/templates/build/detail.html:74 templates/js/translated/build.js:929
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:930
msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:310
-#: templates/js/translated/stock.js:1796 templates/js/translated/stock.js:2927
+#: templates/js/translated/stock.js:1752 templates/js/translated/stock.js:2883
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:238
msgid "Batch"
@@ -1300,7 +1320,7 @@ msgstr "Lotto"
#: build/templates/build/detail.html:127
#: order/templates/order/order_base.html:143
#: order/templates/order/sales_order_base.html:157
-#: templates/js/translated/build.js:1962
+#: templates/js/translated/build.js:2015
msgid "Created"
msgstr "Creato"
@@ -1320,7 +1340,7 @@ msgstr ""
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:177 templates/js/translated/build.js:1484
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1485
msgid "Unallocate stock"
msgstr ""
@@ -1329,111 +1349,119 @@ msgid "Unallocate Stock"
msgstr ""
#: build/templates/build/detail.html:180
-msgid "Allocate stock to build"
+msgid "Automatically allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
+#: build/templates/build/detail.html:181
+msgid "Auto Allocate"
+msgstr ""
+
+#: build/templates/build/detail.html:183
+msgid "Manually allocate stock to build"
+msgstr ""
+
+#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8
msgid "Allocate Stock"
msgstr ""
-#: build/templates/build/detail.html:184
+#: build/templates/build/detail.html:187
msgid "Order required parts"
msgstr "Ordina articoli richiesti"
-#: build/templates/build/detail.html:185
+#: build/templates/build/detail.html:188
#: company/templates/company/detail.html:38
#: company/templates/company/detail.html:85 order/views.py:463
-#: part/templates/part/category.html:177
+#: part/templates/part/category.html:174
msgid "Order Parts"
msgstr "Ordine Articoli"
-#: build/templates/build/detail.html:197
+#: build/templates/build/detail.html:200
msgid "Untracked stock has been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:201
+#: build/templates/build/detail.html:204
msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:208
+#: build/templates/build/detail.html:211
msgid "Allocate selected items"
msgstr ""
-#: build/templates/build/detail.html:218
+#: build/templates/build/detail.html:221
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:230
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:231
+#: build/templates/build/detail.html:234
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:232
+#: build/templates/build/detail.html:235
msgid "New Build Output"
msgstr ""
-#: build/templates/build/detail.html:246
+#: build/templates/build/detail.html:249
msgid "Output Actions"
msgstr ""
-#: build/templates/build/detail.html:250
+#: build/templates/build/detail.html:253
msgid "Complete selected build outputs"
msgstr ""
-#: build/templates/build/detail.html:251
+#: build/templates/build/detail.html:254
msgid "Complete outputs"
msgstr ""
-#: build/templates/build/detail.html:253
+#: build/templates/build/detail.html:256
msgid "Delete selected build outputs"
msgstr ""
-#: build/templates/build/detail.html:254
+#: build/templates/build/detail.html:257
msgid "Delete outputs"
msgstr ""
-#: build/templates/build/detail.html:270
+#: build/templates/build/detail.html:273
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19
+#: build/templates/build/detail.html:285 build/templates/build/sidebar.html:19
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:107
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:222
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217
#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:105
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr "Allegati"
-#: build/templates/build/detail.html:298
+#: build/templates/build/detail.html:301
msgid "Build Notes"
msgstr "Genera Note"
-#: build/templates/build/detail.html:302 build/templates/build/detail.html:478
-#: company/templates/company/detail.html:188
-#: company/templates/company/detail.html:215
+#: build/templates/build/detail.html:305 build/templates/build/detail.html:481
+#: company/templates/company/detail.html:190
+#: company/templates/company/detail.html:217
#: order/templates/order/purchase_order_detail.html:80
#: order/templates/order/purchase_order_detail.html:108
#: order/templates/order/sales_order_detail.html:127
#: order/templates/order/sales_order_detail.html:186
-#: part/templates/part/detail.html:150 stock/templates/stock/item.html:125
+#: part/templates/part/detail.html:145 stock/templates/stock/item.html:125
#: stock/templates/stock/item.html:223
msgid "Edit Notes"
msgstr "Modifica Note"
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:519
msgid "Allocation Complete"
msgstr "Assegnazione Completa"
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:520
msgid "All untracked stock items have been allocated"
msgstr "Tutte le giacenze non tracciate sono state assegnate"
-#: build/templates/build/index.html:18 part/templates/part/detail.html:329
+#: build/templates/build/index.html:18 part/templates/part/detail.html:322
msgid "New Build Order"
msgstr ""
@@ -1658,7 +1686,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:732 part/models.py:2527 report/models.py:187
+#: common/models.py:732 part/models.py:2541 report/models.py:187
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:417
msgid "Template"
@@ -1668,7 +1696,7 @@ msgstr "Template"
msgid "Parts are templates by default"
msgstr "Gli articoli sono modelli per impostazione predefinita"
-#: common/models.py:739 part/models.py:951 templates/js/translated/bom.js:1300
+#: common/models.py:739 part/models.py:951 templates/js/translated/bom.js:1305
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:429
msgid "Assembly"
@@ -2243,7 +2271,7 @@ msgstr ""
#: common/models.py:1325 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:937 templates/js/translated/part.js:1889
+#: templates/js/translated/part.js:938 templates/js/translated/part.js:1890
msgid "Price"
msgstr "Prezzo"
@@ -2337,14 +2365,14 @@ msgstr ""
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
-#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:210
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208
#: templates/patterns/wizard/upload.html:35
msgid "Upload File"
msgstr "Carica file"
#: common/views.py:94 order/views.py:244
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:211
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:209
#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr "Abbina Campi"
@@ -2472,7 +2500,7 @@ msgstr "Valuta"
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:508
+#: company/models.py:320 company/models.py:535 stock/models.py:560
#: stock/templates/stock/item_base.html:137 templates/js/translated/bom.js:541
msgid "Base Part"
msgstr "Articolo di base"
@@ -2499,8 +2527,8 @@ msgstr "Seleziona Produttore"
#: company/models.py:342 company/templates/company/manufacturer_part.html:96
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1124
-#: templates/js/translated/part.js:245 templates/js/translated/part.js:895
+#: templates/js/translated/company.js:818 templates/js/translated/order.js:1211
+#: templates/js/translated/part.js:245 templates/js/translated/part.js:896
msgid "MPN"
msgstr "Codice articolo produttore (MPN)"
@@ -2529,8 +2557,8 @@ msgstr "Nome parametro"
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2064 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1331
+#: stock/models.py:2116 templates/js/translated/company.js:647
+#: templates/js/translated/part.js:716 templates/js/translated/stock.js:1287
msgid "Value"
msgstr "Valore"
@@ -2538,10 +2566,10 @@ msgstr "Valore"
msgid "Parameter value"
msgstr "Valore del parametro"
-#: company/models.py:429 part/models.py:945 part/models.py:2495
+#: company/models.py:429 part/models.py:945 part/models.py:2509
#: part/templates/part/part_base.html:288
#: templates/InvenTree/settings/settings.html:324
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:721
+#: templates/js/translated/company.js:653 templates/js/translated/part.js:722
msgid "Units"
msgstr "Unità"
@@ -2559,8 +2587,8 @@ msgstr "L'articolo del costruttore collegato deve riferirsi alla stesso articolo
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237
#: part/bom.py:265 stock/templates/stock/item_base.html:376
#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:898
-#: templates/js/translated/part.js:215 templates/js/translated/part.js:863
+#: templates/js/translated/company.js:774 templates/js/translated/order.js:958
+#: templates/js/translated/part.js:215 templates/js/translated/part.js:864
#: templates/js/translated/table_filters.js:388
msgid "Supplier"
msgstr "Fornitore"
@@ -2570,8 +2598,8 @@ msgid "Select supplier"
msgstr "Seleziona fornitore"
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1111
-#: templates/js/translated/part.js:226 templates/js/translated/part.js:881
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198
+#: templates/js/translated/part.js:226 templates/js/translated/part.js:882
msgid "SKU"
msgstr "SKU"
@@ -2592,7 +2620,7 @@ msgid "Supplier part description"
msgstr "Descrizione articolo fornitore"
#: company/models.py:576 company/templates/company/supplier_part.html:119
-#: part/models.py:2719 part/templates/part/upload_bom.html:59
+#: part/models.py:2734 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409
msgid "Note"
@@ -2607,8 +2635,8 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr "Onere minimo (ad esempio tassa di stoccaggio)"
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:532 stock/templates/stock/item_base.html:317
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1931
+#: stock/models.py:584 stock/templates/stock/item_base.html:317
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1887
msgid "Packaging"
msgstr "Confezionamento"
@@ -2676,11 +2704,11 @@ msgid "Download image from URL"
msgstr "Scarica immagine dall'URL"
#: company/templates/company/company_base.html:83 order/models.py:574
-#: order/templates/order/sales_order_base.html:115 stock/models.py:551
-#: stock/models.py:552 stock/serializers.py:683
+#: order/templates/order/sales_order_base.html:115 stock/models.py:603
+#: stock/models.py:604 stock/serializers.py:683
#: stock/templates/stock/item_base.html:269
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1348
-#: templates/js/translated/stock.js:2735
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1436
+#: templates/js/translated/stock.js:2691
#: templates/js/translated/table_filters.js:392
msgid "Customer"
msgstr "Cliente"
@@ -2711,7 +2739,7 @@ msgstr "Crea nuovo fornitore"
#: company/templates/company/detail.html:20
#: company/templates/company/manufacturer_part.html:118
-#: part/templates/part/detail.html:367
+#: part/templates/part/detail.html:360
msgid "New Supplier Part"
msgstr "Nuovo fornitore articolo"
@@ -2719,14 +2747,14 @@ msgstr "Nuovo fornitore articolo"
#: company/templates/company/detail.html:79
#: company/templates/company/manufacturer_part.html:127
#: company/templates/company/manufacturer_part.html:156
-#: part/templates/part/category.html:171 part/templates/part/detail.html:376
-#: part/templates/part/detail.html:405
+#: part/templates/part/category.html:168 part/templates/part/detail.html:369
+#: part/templates/part/detail.html:398
msgid "Options"
msgstr "Opzioni"
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177
+#: part/templates/part/category.html:174
msgid "Order parts"
msgstr "Articoli ordinati"
@@ -2748,7 +2776,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:395
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:388
msgid "New Manufacturer Part"
msgstr ""
@@ -2762,7 +2790,7 @@ msgstr "Giacenza Fornitore"
#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:40
+#: part/templates/part/detail.html:80 part/templates/part/part_sidebar.html:40
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
@@ -2784,7 +2812,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:44
+#: part/templates/part/detail.html:103 part/templates/part/part_sidebar.html:44
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
@@ -2802,23 +2830,23 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/detail.html:168
-#: templates/js/translated/build.js:1281
+#: templates/js/translated/build.js:1282
msgid "Assigned Stock"
msgstr ""
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:186
msgid "Company Notes"
msgstr ""
-#: company/templates/company/detail.html:384
+#: company/templates/company/detail.html:380
#: company/templates/company/manufacturer_part.html:215
-#: part/templates/part/detail.html:449
+#: part/templates/part/detail.html:442
msgid "Delete Supplier Parts?"
msgstr "Elimina articoli fornitore?"
-#: company/templates/company/detail.html:385
+#: company/templates/company/detail.html:381
#: company/templates/company/manufacturer_part.html:216
-#: part/templates/part/detail.html:450
+#: part/templates/part/detail.html:443
msgid "All selected supplier parts will be deleted"
msgstr "Tutte gli articoli del fornitore selezionati saranno eliminati"
@@ -2835,7 +2863,7 @@ msgstr "Produttori"
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:34
#: company/templates/company/supplier_part.html:159
-#: part/templates/part/detail.html:88 part/templates/part/part_base.html:76
+#: part/templates/part/detail.html:83 part/templates/part/part_base.html:76
msgid "Order part"
msgstr "Articoli ordinati"
@@ -2862,14 +2890,14 @@ msgid "Suppliers"
msgstr "Fornitori"
#: company/templates/company/manufacturer_part.html:129
-#: part/templates/part/detail.html:378
+#: part/templates/part/detail.html:371
msgid "Delete supplier parts"
msgstr "Elimina articolo fornitore"
#: company/templates/company/manufacturer_part.html:129
#: company/templates/company/manufacturer_part.html:158
#: company/templates/company/manufacturer_part.html:254
-#: part/templates/part/detail.html:378 part/templates/part/detail.html:407
+#: part/templates/part/detail.html:371 part/templates/part/detail.html:400
#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31
#: users/models.py:217
msgid "Delete"
@@ -2878,12 +2906,12 @@ msgstr "Elimina"
#: company/templates/company/manufacturer_part.html:143
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:17
-#: part/templates/part/detail.html:196 part/templates/part/part_sidebar.html:9
+#: part/templates/part/detail.html:191 part/templates/part/part_sidebar.html:9
msgid "Parameters"
msgstr "Parametri"
#: company/templates/company/manufacturer_part.html:147
-#: part/templates/part/detail.html:201
+#: part/templates/part/detail.html:196
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:66
msgid "New Parameter"
@@ -2894,7 +2922,7 @@ msgid "Delete parameters"
msgstr "Elimina il parametro"
#: company/templates/company/manufacturer_part.html:191
-#: part/templates/part/detail.html:908
+#: part/templates/part/detail.html:894
msgid "Add Parameter"
msgstr "Aggiungi parametro"
@@ -2923,9 +2951,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:516
+#: company/templates/company/supplier_part.html:24 stock/models.py:568
#: stock/templates/stock/item_base.html:381
-#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1888
+#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1844
msgid "Supplier Part"
msgstr "Articolo Fornitore"
@@ -2951,7 +2979,7 @@ msgstr "Crea nuova allocazione magazzino"
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:166
-#: templates/js/translated/stock.js:368
+#: templates/js/translated/stock.js:367
msgid "New Stock Item"
msgstr "Nuovo Elemento in giacenza"
@@ -2961,7 +2989,7 @@ msgid "Supplier Part Orders"
msgstr "Ordini articoli fornitore"
#: company/templates/company/supplier_part.html:160
-#: part/templates/part/detail.html:89
+#: part/templates/part/detail.html:84
msgid "Order Part"
msgstr "Ordine Articolo"
@@ -2972,7 +3000,7 @@ msgstr "Informazioni Prezzi"
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1319
+#: part/templates/part/prices.html:271 part/views.py:1254
msgid "Add Price Break"
msgstr "Aggiungi riduzione prezzo"
@@ -2980,11 +3008,11 @@ msgstr "Aggiungi riduzione prezzo"
msgid "No price break information found"
msgstr "Nessuna informazione di riduzione di prezzo trovata"
-#: company/templates/company/supplier_part.html:224 part/views.py:1381
+#: company/templates/company/supplier_part.html:224 part/views.py:1316
msgid "Delete Price Break"
msgstr "Elimina riduzione di prezzo"
-#: company/templates/company/supplier_part.html:238 part/views.py:1367
+#: company/templates/company/supplier_part.html:238 part/views.py:1302
msgid "Edit Price Break"
msgstr ""
@@ -3002,10 +3030,10 @@ msgstr "Cancella riduzione di prezzo"
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:150
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/bom.js:553 templates/js/translated/part.js:495
-#: templates/js/translated/part.js:630 templates/js/translated/part.js:1147
-#: templates/js/translated/part.js:1308 templates/js/translated/stock.js:935
-#: templates/js/translated/stock.js:1711 templates/navbar.html:28
+#: templates/js/translated/bom.js:553 templates/js/translated/part.js:496
+#: templates/js/translated/part.js:631 templates/js/translated/part.js:1148
+#: templates/js/translated/part.js:1309 templates/js/translated/stock.js:891
+#: templates/js/translated/stock.js:1667 templates/navbar.html:28
msgid "Stock"
msgstr "Magazzino"
@@ -3028,7 +3056,7 @@ msgstr "Prezzi"
#: stock/templates/stock/location.html:150
#: stock/templates/stock/location.html:162
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2641
+#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2597
#: templates/stats.html:105 templates/stats.html:114 users/models.py:43
msgid "Stock Items"
msgstr "Articoli in magazzino"
@@ -3058,20 +3086,20 @@ msgstr "Aziende"
msgid "New Company"
msgstr "Nuova Azienda"
-#: company/views.py:129 part/views.py:591
+#: company/views.py:129 part/views.py:589
msgid "Download Image"
msgstr "Download Immagine"
-#: company/views.py:158 part/views.py:623
+#: company/views.py:158 part/views.py:621
msgid "Image size exceeds maximum allowable size for download"
msgstr "La dimensione dell'immagine supera la dimensione massima consentita per il download"
-#: company/views.py:165 part/views.py:630
+#: company/views.py:165 part/views.py:628
#, python-brace-format
msgid "Invalid response: {code}"
msgstr "Risposta non valida: {code}"
-#: company/views.py:174 part/views.py:639
+#: company/views.py:174 part/views.py:637
msgid "Supplied URL is not a valid image file"
msgstr "L'URL fornito non è un file immagine valido"
@@ -3190,7 +3218,7 @@ msgid "Company from which the items are being ordered"
msgstr "Azienda da cui sono stati ordinati gli articoli"
#: order/models.py:231 order/templates/order/order_base.html:118
-#: templates/js/translated/order.js:907
+#: templates/js/translated/order.js:967
msgid "Supplier Reference"
msgstr "Riferimento fornitore"
@@ -3247,7 +3275,7 @@ msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
#: order/models.py:589 order/models.py:1084
-#: templates/js/translated/order.js:1395 templates/js/translated/order.js:1546
+#: templates/js/translated/order.js:1483 templates/js/translated/order.js:1634
msgid "Shipment Date"
msgstr ""
@@ -3292,7 +3320,7 @@ msgid "Supplier part must match supplier"
msgstr ""
#: order/models.py:891 order/models.py:982 order/models.py:1078
-#: templates/js/translated/order.js:1937 templates/js/translated/stock.js:2403
+#: templates/js/translated/order.js:2025 templates/js/translated/stock.js:2359
msgid "Order"
msgstr ""
@@ -3300,8 +3328,8 @@ msgstr ""
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:331
-#: templates/js/translated/order.js:876 templates/js/translated/part.js:838
-#: templates/js/translated/stock.js:1865 templates/js/translated/stock.js:2716
+#: templates/js/translated/order.js:936 templates/js/translated/part.js:839
+#: templates/js/translated/stock.js:1821 templates/js/translated/stock.js:2672
msgid "Purchase Order"
msgstr ""
@@ -3310,8 +3338,8 @@ msgid "Supplier part"
msgstr "Articolo Fornitore"
#: order/models.py:920 order/templates/order/order_base.html:163
-#: templates/js/translated/order.js:654 templates/js/translated/order.js:1226
-#: templates/js/translated/part.js:932 templates/js/translated/part.js:959
+#: templates/js/translated/order.js:714 templates/js/translated/order.js:1313
+#: templates/js/translated/part.js:933 templates/js/translated/part.js:960
#: templates/js/translated/table_filters.js:312
msgid "Received"
msgstr ""
@@ -3320,9 +3348,9 @@ msgstr ""
msgid "Number of items received"
msgstr ""
-#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:645
+#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:697
#: stock/serializers.py:170 stock/templates/stock/item_base.html:338
-#: templates/js/translated/stock.js:1919
+#: templates/js/translated/stock.js:1875
msgid "Purchase Price"
msgstr ""
@@ -3456,11 +3484,11 @@ msgstr ""
msgid "Select destination location for received items"
msgstr "Seleziona la posizione di destinazione per gli elementi ricevuti"
-#: order/serializers.py:273 templates/js/translated/order.js:514
+#: order/serializers.py:273 templates/js/translated/order.js:574
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:281 templates/js/translated/order.js:525
+#: order/serializers.py:281 templates/js/translated/order.js:585
msgid "Enter serial numbers for incoming stock items"
msgstr ""
@@ -3578,7 +3606,7 @@ msgstr ""
#: order/templates/order/order_base.html:94
#: order/templates/order/sales_order_base.html:89
-#: templates/js/translated/stock.js:2459
+#: templates/js/translated/stock.js:2415
msgid "Order Status"
msgstr "Stato dell'ordine"
@@ -3650,10 +3678,10 @@ msgstr "Seleziona l'articolo del fornitore"
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/bom.js:76 templates/js/translated/build.js:380
-#: templates/js/translated/build.js:528 templates/js/translated/build.js:1547
-#: templates/js/translated/order.js:602 templates/js/translated/order.js:1605
-#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769
+#: templates/js/translated/bom.js:76 templates/js/translated/build.js:381
+#: templates/js/translated/build.js:529 templates/js/translated/build.js:1558
+#: templates/js/translated/order.js:662 templates/js/translated/order.js:1693
+#: templates/js/translated/stock.js:557 templates/js/translated/stock.js:725
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr "Elimina riga"
@@ -3717,8 +3745,8 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:940 templates/js/translated/order.js:1403
-#: templates/js/translated/order.js:1533
+#: templates/js/translated/order.js:1000 templates/js/translated/order.js:1491
+#: templates/js/translated/order.js:1621
msgid "Items"
msgstr ""
@@ -3752,9 +3780,9 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:27
-#: order/templates/order/purchase_order_detail.html:182
+#: order/templates/order/purchase_order_detail.html:166
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:245
+#: order/templates/order/sales_order_detail.html:233
msgid "Add Line Item"
msgstr ""
@@ -3794,7 +3822,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:122
-#: templates/js/translated/order.js:1361
+#: templates/js/translated/order.js:1449
msgid "Customer Reference"
msgstr ""
@@ -3827,7 +3855,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:48
-#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1465
+#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1466
msgid "Actions"
msgstr ""
@@ -3902,31 +3930,31 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:499
+#: part/api.py:502
msgid "Valid"
msgstr ""
-#: part/api.py:500
+#: part/api.py:503
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:505
+#: part/api.py:508
msgid "This option must be selected"
msgstr ""
-#: part/api.py:847
+#: part/api.py:866
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:851
+#: part/api.py:870
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:866
+#: part/api.py:885
msgid "Specify location for initial part stock"
msgstr "Specifica la posizione per lo stock iniziale"
-#: part/api.py:897 part/api.py:901 part/api.py:916 part/api.py:920
+#: part/api.py:916 part/api.py:920 part/api.py:935 part/api.py:939
msgid "This field is required"
msgstr ""
@@ -3944,7 +3972,7 @@ msgid "Available Stock"
msgstr "Disponibilità in magazzino"
#: part/bom.py:128 part/templates/part/part_base.html:203
-#: templates/js/translated/part.js:1323
+#: templates/js/translated/part.js:1324
msgid "On Order"
msgstr "Ordinato"
@@ -3976,7 +4004,7 @@ msgstr "Keywords predefinite"
msgid "Default keywords for parts in this category"
msgstr "Parole chiave predefinite per gli articoli in questa categoria"
-#: part/models.py:97 part/models.py:2571 part/templates/part/category.html:15
+#: part/models.py:97 part/models.py:2585 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Categoria Articoli"
@@ -3993,7 +4021,7 @@ msgstr "Categorie Articolo"
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:37
-#: templates/js/translated/part.js:1685 templates/navbar.html:21
+#: templates/js/translated/part.js:1686 templates/navbar.html:21
#: templates/stats.html:92 templates/stats.html:101 users/models.py:41
msgid "Parts"
msgstr "Articoli"
@@ -4023,7 +4051,7 @@ msgstr "Il numero di serie più recente è"
msgid "Duplicate IPN not allowed in part settings"
msgstr "Non è consentito duplicare IPN nelle impostazioni dell'articolo"
-#: part/models.py:803 part/models.py:2624
+#: part/models.py:803 part/models.py:2638
msgid "Part name"
msgstr "Nome articolo"
@@ -4056,11 +4084,11 @@ msgstr "Parole Chiave"
msgid "Part keywords to improve visibility in search results"
msgstr "Parole chiave per migliorare la visibilità nei risultati di ricerca"
-#: part/models.py:841 part/models.py:2321 part/models.py:2570
+#: part/models.py:841 part/models.py:2335 part/models.py:2584
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:223
-#: templates/js/translated/part.js:1290
+#: templates/js/translated/part.js:1291
msgid "Category"
msgstr "Categoria"
@@ -4069,8 +4097,8 @@ msgid "Part category"
msgstr "Categoria articolo"
#: part/models.py:847 part/templates/part/part_base.html:274
-#: templates/js/translated/part.js:618 templates/js/translated/part.js:1243
-#: templates/js/translated/stock.js:1683
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:1244
+#: templates/js/translated/stock.js:1639
msgid "IPN"
msgstr "IPN - Numero di riferimento interno"
@@ -4083,7 +4111,7 @@ msgid "Part revision or version number"
msgstr "Numero di revisione o di versione"
#: part/models.py:855 part/templates/part/part_base.html:281
-#: report/models.py:200 templates/js/translated/part.js:622
+#: report/models.py:200 templates/js/translated/part.js:623
msgid "Revision"
msgstr "Revisione"
@@ -4175,301 +4203,309 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2371
+#: part/models.py:2385
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2388
+#: part/models.py:2402
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2408 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:1311
+#: part/models.py:2422 templates/js/translated/part.js:1737
+#: templates/js/translated/stock.js:1267
msgid "Test Name"
msgstr ""
-#: part/models.py:2409
+#: part/models.py:2423
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2414
+#: part/models.py:2428
msgid "Test Description"
msgstr "Descrizione Di Prova"
-#: part/models.py:2415
+#: part/models.py:2429
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2420 templates/js/translated/part.js:1745
+#: part/models.py:2434 templates/js/translated/part.js:1746
#: templates/js/translated/table_filters.js:276
msgid "Required"
msgstr ""
-#: part/models.py:2421
+#: part/models.py:2435
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2426 templates/js/translated/part.js:1753
+#: part/models.py:2440 templates/js/translated/part.js:1754
msgid "Requires Value"
msgstr ""
-#: part/models.py:2427
+#: part/models.py:2441
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2432 templates/js/translated/part.js:1760
+#: part/models.py:2446 templates/js/translated/part.js:1761
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2433
+#: part/models.py:2447
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2444
+#: part/models.py:2458
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2480
+#: part/models.py:2494
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2488
+#: part/models.py:2502
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2495
+#: part/models.py:2509
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2525
+#: part/models.py:2539
msgid "Parent Part"
msgstr ""
-#: part/models.py:2527 part/models.py:2576 part/models.py:2577
+#: part/models.py:2541 part/models.py:2590 part/models.py:2591
#: templates/InvenTree/settings/settings.html:218
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2529
+#: part/models.py:2543
msgid "Data"
msgstr ""
-#: part/models.py:2529
+#: part/models.py:2543
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2581 templates/InvenTree/settings/settings.html:227
+#: part/models.py:2595 templates/InvenTree/settings/settings.html:227
msgid "Default Value"
msgstr ""
-#: part/models.py:2582
+#: part/models.py:2596
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2616
+#: part/models.py:2630
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2619 templates/js/translated/model_renderers.js:182
+#: part/models.py:2633 templates/js/translated/model_renderers.js:182
msgid "Part ID"
msgstr "Codice Articolo"
-#: part/models.py:2620
+#: part/models.py:2634
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2623
+#: part/models.py:2637
msgid "Part Name"
msgstr ""
-#: part/models.py:2627
+#: part/models.py:2641
msgid "Part IPN"
msgstr ""
-#: part/models.py:2628
+#: part/models.py:2642
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2645
msgid "Level"
msgstr ""
-#: part/models.py:2632
+#: part/models.py:2646
msgid "BOM level"
msgstr ""
-#: part/models.py:2692
+#: part/models.py:2707
msgid "Select parent part"
msgstr ""
-#: part/models.py:2700
+#: part/models.py:2715
msgid "Sub part"
msgstr ""
-#: part/models.py:2701
+#: part/models.py:2716
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2707
+#: part/models.py:2722
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2709 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:791 templates/js/translated/bom.js:865
+#: part/models.py:2724 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2709
+#: part/models.py:2724
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2712 part/templates/part/upload_bom.html:55
+#: part/models.py:2727 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2713
+#: part/models.py:2728
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2716
+#: part/models.py:2731
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2719
+#: part/models.py:2734
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2721
+#: part/models.py:2736
msgid "Checksum"
msgstr ""
-#: part/models.py:2721
+#: part/models.py:2736
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2725 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:882
+#: part/models.py:2740 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:880
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2726
+#: part/models.py:2741
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2731 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:874
+#: part/models.py:2746 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:872
msgid "Allow Variants"
msgstr "Consenti Le Varianti"
-#: part/models.py:2732
+#: part/models.py:2747
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2817 stock/models.py:394
+#: part/models.py:2832 stock/models.py:446
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2826 part/models.py:2828
+#: part/models.py:2841 part/models.py:2843
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2957
+#: part/models.py:2972
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2979
+#: part/models.py:2994
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2991
+#: part/models.py:3006
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2999
+#: part/models.py:3014
msgid "Substitute part"
msgstr ""
-#: part/models.py:3010
+#: part/models.py:3025
msgid "Part 1"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3029
msgid "Part 2"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3029
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3046
+#: part/models.py:3061
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
-#: part/serializers.py:667
+#: part/serializers.py:670
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:678
+#: part/serializers.py:681
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:679
+#: part/serializers.py:682
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:684
+#: part/serializers.py:687
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:685
+#: part/serializers.py:688
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:690
+#: part/serializers.py:693
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:691
+#: part/serializers.py:694
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:699
+msgid "Copy Substitute Parts"
+msgstr ""
+
+#: part/serializers.py:700
+msgid "Copy substitute parts when duplicate BOM items"
+msgstr ""
+
+#: part/serializers.py:744
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:735
+#: part/serializers.py:745
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:762
+#: part/serializers.py:772
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:805
+#: part/serializers.py:815
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:808
+#: part/serializers.py:818
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:811
+#: part/serializers.py:821
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:820
+#: part/serializers.py:830
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:828
+#: part/serializers.py:838
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:847
+#: part/serializers.py:857
msgid "At least one BOM item is required"
msgstr ""
@@ -4496,7 +4532,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:279
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:274
msgid "BOM actions"
msgstr ""
@@ -4548,7 +4584,7 @@ msgstr "Percorso Categoria"
msgid "Top level part category"
msgstr "Categoria articolo di livello superiore"
-#: part/templates/part/category.html:114 part/templates/part/category.html:205
+#: part/templates/part/category.html:114 part/templates/part/category.html:202
#: part/templates/part/category_sidebar.html:7
msgid "Subcategories"
msgstr "Sottocategorie"
@@ -4557,55 +4593,51 @@ msgstr "Sottocategorie"
msgid "Parts (Including subcategories)"
msgstr "Articoli (incluse le sottocategorie)"
-#: part/templates/part/category.html:156
-msgid "Export Part Data"
-msgstr "Esporta dati articolo"
-
-#: part/templates/part/category.html:157 part/templates/part/category.html:181
-msgid "Export"
-msgstr "Esporta"
-
-#: part/templates/part/category.html:160
+#: part/templates/part/category.html:157
msgid "Create new part"
msgstr "Crea nuovo articolo"
-#: part/templates/part/category.html:161 templates/js/translated/bom.js:365
+#: part/templates/part/category.html:158 templates/js/translated/bom.js:365
msgid "New Part"
msgstr "Nuovo articolo"
-#: part/templates/part/category.html:175
+#: part/templates/part/category.html:172
msgid "Set category"
msgstr "Imposta categoria"
-#: part/templates/part/category.html:175
+#: part/templates/part/category.html:172
msgid "Set Category"
msgstr "Imposta Categoria"
-#: part/templates/part/category.html:179
+#: part/templates/part/category.html:176
msgid "Print Labels"
msgstr "Stampa Etichette"
-#: part/templates/part/category.html:181
+#: part/templates/part/category.html:178
+msgid "Export"
+msgstr "Esporta"
+
+#: part/templates/part/category.html:178
msgid "Export Data"
msgstr "Esporta Dati"
-#: part/templates/part/category.html:195
+#: part/templates/part/category.html:192
msgid "Part Parameters"
msgstr "Parametri articolo"
-#: part/templates/part/category.html:288
+#: part/templates/part/category.html:285
msgid "Create Part Category"
msgstr "Crea Categoria Articolo"
-#: part/templates/part/category.html:315
+#: part/templates/part/category.html:305
msgid "Create Part"
msgstr "Crea Articolo"
-#: part/templates/part/category.html:318
+#: part/templates/part/category.html:308
msgid "Create another part after this one"
msgstr ""
-#: part/templates/part/category.html:319
+#: part/templates/part/category.html:309
msgid "Part created successfully"
msgstr ""
@@ -4676,155 +4708,150 @@ msgstr ""
msgid "Part Stock"
msgstr ""
-#: part/templates/part/detail.html:33
-#, python-format
-msgid "Showing stock for all variants of %(full_name)s"
-msgstr ""
-
-#: part/templates/part/detail.html:43
+#: part/templates/part/detail.html:38
msgid "Part Stock Allocations"
msgstr ""
-#: part/templates/part/detail.html:60
+#: part/templates/part/detail.html:55
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:65
+#: part/templates/part/detail.html:60
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:122
+#: part/templates/part/detail.html:117
msgid "Sales Order Allocations"
msgstr "Assegnazione Ordine Di Vendita"
-#: part/templates/part/detail.html:168
+#: part/templates/part/detail.html:163
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:172
+#: part/templates/part/detail.html:167
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:173
+#: part/templates/part/detail.html:168
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:200
+#: part/templates/part/detail.html:195
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:237 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:52
msgid "Related Parts"
msgstr "Articoli correlati"
-#: part/templates/part/detail.html:241 part/templates/part/detail.html:242
+#: part/templates/part/detail.html:236 part/templates/part/detail.html:237
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:262 part/templates/part/part_sidebar.html:18
+#: part/templates/part/detail.html:257 part/templates/part/part_sidebar.html:18
msgid "Bill of Materials"
msgstr "Distinta base"
-#: part/templates/part/detail.html:267
+#: part/templates/part/detail.html:262
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:271 templates/js/translated/bom.js:283
+#: part/templates/part/detail.html:266 templates/js/translated/bom.js:283
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:268
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:283
+#: part/templates/part/detail.html:278
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:285 templates/js/translated/part.js:272
+#: part/templates/part/detail.html:279 templates/js/translated/part.js:272
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:287
+#: part/templates/part/detail.html:280
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:285
msgid "New BOM Item"
msgstr ""
-#: part/templates/part/detail.html:293
+#: part/templates/part/detail.html:286
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:306
+#: part/templates/part/detail.html:299
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:323
+#: part/templates/part/detail.html:316
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:348
+#: part/templates/part/detail.html:341
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:363
+#: part/templates/part/detail.html:356
msgid "Part Suppliers"
msgstr "Fornitori articoli"
-#: part/templates/part/detail.html:391
+#: part/templates/part/detail.html:384
msgid "Part Manufacturers"
msgstr "Componenti Produttori"
-#: part/templates/part/detail.html:407
+#: part/templates/part/detail.html:400
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:589
+#: part/templates/part/detail.html:582
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:590
+#: part/templates/part/detail.html:583
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:639
+#: part/templates/part/detail.html:632
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:696
+#: part/templates/part/detail.html:689
msgid "Related Part"
msgstr "Articoli correlati"
-#: part/templates/part/detail.html:704
+#: part/templates/part/detail.html:697
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:801
+#: part/templates/part/detail.html:794
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:858
+#: part/templates/part/detail.html:844
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:971
+#: part/templates/part/detail.html:957
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:983
+#: part/templates/part/detail.html:969
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:995
+#: part/templates/part/detail.html:981
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1084
+#: part/templates/part/detail.html:1070
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4969,7 +4996,7 @@ msgstr ""
#: templates/js/translated/company.js:508
#: templates/js/translated/company.js:765
#: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:533 templates/js/translated/part.js:610
+#: templates/js/translated/part.js:534 templates/js/translated/part.js:611
msgid "Inactive"
msgstr "Inattivo"
@@ -4983,7 +5010,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2356
+#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2444
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr "In magazzino"
@@ -5000,12 +5027,12 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:903
+#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:901
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1154
-#: templates/js/translated/part.js:1327
+#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1155
+#: templates/js/translated/part.js:1328
msgid "Building"
msgstr ""
@@ -5057,7 +5084,7 @@ msgid "Total Cost"
msgstr "Costo Totale"
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:857
+#: templates/js/translated/bom.js:855
msgid "No supplier pricing available"
msgstr ""
@@ -5177,7 +5204,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:851
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849
msgid "Supplier Cost"
msgstr ""
@@ -5199,7 +5226,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1390
+#: part/templates/part/prices.html:215 part/views.py:1325
msgid "Add Internal Price Break"
msgstr ""
@@ -5219,9 +5246,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr "Imposta categoria per i seguenti articoli"
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813
-#: templates/js/translated/part.js:497 templates/js/translated/part.js:1144
-#: templates/js/translated/part.js:1331
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811
+#: templates/js/translated/part.js:498 templates/js/translated/part.js:1145
+#: templates/js/translated/part.js:1332
msgid "No Stock"
msgstr "Nessuna giacenza"
@@ -5275,100 +5302,100 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:172
+#: part/templatetags/inventree_extras.py:174
msgid "Unknown database"
msgstr "Database sconosciuto"
-#: part/views.py:90
+#: part/views.py:88
msgid "Set Part Category"
msgstr "Imposta categoria articolo"
-#: part/views.py:140
+#: part/views.py:138
#, python-brace-format
msgid "Set category for {n} parts"
msgstr "Imposta categoria per {n} articoli"
-#: part/views.py:212
+#: part/views.py:210
msgid "Match References"
msgstr ""
-#: part/views.py:509
+#: part/views.py:507
msgid "None"
msgstr ""
-#: part/views.py:568
+#: part/views.py:566
msgid "Part QR Code"
msgstr ""
-#: part/views.py:670
+#: part/views.py:668
msgid "Select Part Image"
msgstr ""
-#: part/views.py:696
+#: part/views.py:694
msgid "Updated part image"
msgstr ""
-#: part/views.py:699
+#: part/views.py:697
msgid "Part image not found"
msgstr ""
-#: part/views.py:850
+#: part/views.py:785
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:857
+#: part/views.py:792
msgid "Part was deleted"
msgstr ""
-#: part/views.py:866
+#: part/views.py:801
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1015
+#: part/views.py:950
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1025
+#: part/views.py:960
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1032
+#: part/views.py:967
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1091 templates/js/translated/part.js:315
+#: part/views.py:1026 templates/js/translated/part.js:315
msgid "Edit Part Category"
msgstr "Modifica Categoria Articoli"
-#: part/views.py:1129
+#: part/views.py:1064
msgid "Delete Part Category"
msgstr "Elimina categoria"
-#: part/views.py:1135
+#: part/views.py:1070
msgid "Part category was deleted"
msgstr "La Categoria articoli è stata eliminata"
-#: part/views.py:1144
+#: part/views.py:1079
msgid "Create Category Parameter Template"
msgstr "Crea Template Parametro Categoria"
-#: part/views.py:1245
+#: part/views.py:1180
msgid "Edit Category Parameter Template"
msgstr "Modifica Modello Parametro Categoria"
-#: part/views.py:1301
+#: part/views.py:1236
msgid "Delete Category Parameter Template"
msgstr "Elimina Modello Parametro Categoria"
-#: part/views.py:1323
+#: part/views.py:1258
msgid "Added new price break"
msgstr ""
-#: part/views.py:1399
+#: part/views.py:1334
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1407
+#: part/views.py:1342
msgid "Delete Internal Price Break"
msgstr ""
@@ -5574,12 +5601,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:556 stock/templates/stock/item_base.html:151
-#: templates/js/translated/build.js:373 templates/js/translated/build.js:521
-#: templates/js/translated/build.js:919 templates/js/translated/build.js:1295
+#: stock/models.py:608 stock/templates/stock/item_base.html:151
+#: templates/js/translated/build.js:374 templates/js/translated/build.js:522
+#: templates/js/translated/build.js:920 templates/js/translated/build.js:1296
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:99 templates/js/translated/order.js:2062
-#: templates/js/translated/order.js:2151 templates/js/translated/stock.js:423
+#: templates/js/translated/order.js:99 templates/js/translated/order.js:2150
+#: templates/js/translated/order.js:2239 templates/js/translated/stock.js:422
msgid "Serial Number"
msgstr ""
@@ -5588,19 +5615,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:2052
+#: stock/models.py:2104
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:2058
+#: stock/models.py:2110
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:50
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:924 templates/js/translated/stock.js:2657
+#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2613
msgid "Date"
msgstr "Data"
@@ -5618,26 +5645,26 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756
-#: templates/js/translated/stock.js:2910
+#: templates/js/translated/stock.js:542 templates/js/translated/stock.js:712
+#: templates/js/translated/stock.js:2866
msgid "Serial"
msgstr "Seriale"
-#: stock/api.py:501
+#: stock/api.py:503
msgid "Quantity is required"
msgstr "La quantità è richiesta"
-#: stock/api.py:508
+#: stock/api.py:510
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:533
+#: stock/api.py:535
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/forms.py:74 stock/forms.py:198 stock/models.py:613
+#: stock/forms.py:74 stock/forms.py:198 stock/models.py:665
#: stock/templates/stock/item_base.html:188
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1791
msgid "Expiry Date"
msgstr "Data di Scadenza"
@@ -5677,228 +5704,228 @@ msgstr "Conferma la disinstallazione"
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:62 stock/models.py:650
+#: stock/models.py:62 stock/models.py:702
#: stock/templates/stock/item_base.html:402
msgid "Owner"
msgstr ""
-#: stock/models.py:63 stock/models.py:651
+#: stock/models.py:63 stock/models.py:703
msgid "Select Owner"
msgstr "Seleziona Owner"
-#: stock/models.py:375
+#: stock/models.py:427
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:463
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:421 stock/models.py:430
+#: stock/models.py:473 stock/models.py:482
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:422
+#: stock/models.py:474
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:444
+#: stock/models.py:496
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:450
+#: stock/models.py:502
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:457
+#: stock/models.py:509
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:500
+#: stock/models.py:552
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:509
+#: stock/models.py:561
msgid "Base part"
msgstr "Articolo base"
-#: stock/models.py:517
+#: stock/models.py:569
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:523 stock/templates/stock/location.html:16
+#: stock/models.py:575 stock/templates/stock/location.html:16
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr "Ubicazione magazzino"
-#: stock/models.py:526
+#: stock/models.py:578
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:585
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:539 stock/templates/stock/item_base.html:277
+#: stock/models.py:591 stock/templates/stock/item_base.html:277
msgid "Installed In"
msgstr "Installato In"
-#: stock/models.py:542
+#: stock/models.py:594
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:558
+#: stock/models.py:610
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:572
+#: stock/models.py:624
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:576
+#: stock/models.py:628
msgid "Stock Quantity"
msgstr "Quantità disponibile"
-#: stock/models.py:585
+#: stock/models.py:637
msgid "Source Build"
msgstr ""
-#: stock/models.py:587
+#: stock/models.py:639
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:598
+#: stock/models.py:650
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:601
+#: stock/models.py:653
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:607
+#: stock/models.py:659
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:614
+#: stock/models.py:666
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:627
+#: stock/models.py:679
msgid "Delete on deplete"
msgstr "Elimina al esaurimento"
-#: stock/models.py:627
+#: stock/models.py:679
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:637 stock/templates/stock/item.html:121
+#: stock/models.py:689 stock/templates/stock/item.html:121
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:646
+#: stock/models.py:698
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1171
+#: stock/models.py:1223
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1177
+#: stock/models.py:1229
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1183
+#: stock/models.py:1235
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1186
+#: stock/models.py:1238
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1189
+#: stock/models.py:1241
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1196
+#: stock/models.py:1248
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1267
+#: stock/models.py:1319
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1270
+#: stock/models.py:1322
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1273
+#: stock/models.py:1325
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1276
+#: stock/models.py:1328
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1279
+#: stock/models.py:1331
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1282
+#: stock/models.py:1334
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1289 stock/serializers.py:832
+#: stock/models.py:1341 stock/serializers.py:832
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1293
+#: stock/models.py:1345
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1297
+#: stock/models.py:1349
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1301
+#: stock/models.py:1353
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1473
+#: stock/models.py:1525
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1972
+#: stock/models.py:2024
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2029
+#: stock/models.py:2081
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2035
+#: stock/models.py:2087
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2053
+#: stock/models.py:2105
msgid "Test name"
msgstr ""
-#: stock/models.py:2059
+#: stock/models.py:2111
msgid "Test result"
msgstr ""
-#: stock/models.py:2065
+#: stock/models.py:2117
msgid "Test output value"
msgstr ""
-#: stock/models.py:2072
+#: stock/models.py:2124
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2078
+#: stock/models.py:2130
msgid "Test notes"
msgstr ""
@@ -5935,7 +5962,7 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:363 stock/views.py:1127
+#: stock/serializers.py:363 stock/views.py:1009
msgid "Serial numbers already exist"
msgstr "Numeri di serie già esistenti"
@@ -6052,11 +6079,11 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:147 templates/js/translated/stock.js:3019
+#: stock/templates/stock/item.html:147 templates/js/translated/stock.js:2975
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1479
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1435
msgid "Add Test Result"
msgstr ""
@@ -6070,7 +6097,7 @@ msgstr ""
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:46 templates/stock_table.html:24
+#: stock/templates/stock/item_base.html:46 templates/stock_table.html:21
msgid "Scan to Location"
msgstr "Scansiona nella posizione"
@@ -6083,15 +6110,15 @@ msgid "Stock adjustment actions"
msgstr ""
#: stock/templates/stock/item_base.html:69
-#: stock/templates/stock/location.html:52 templates/stock_table.html:50
+#: stock/templates/stock/location.html:52 templates/stock_table.html:47
msgid "Count stock"
msgstr "Conta giacenza"
-#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48
+#: stock/templates/stock/item_base.html:72 templates/stock_table.html:45
msgid "Add stock"
msgstr "Aggiungi giacenza"
-#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49
+#: stock/templates/stock/item_base.html:75 templates/stock_table.html:46
msgid "Remove stock"
msgstr "Rimuovi giacenza"
@@ -6100,11 +6127,11 @@ msgid "Serialize stock"
msgstr ""
#: stock/templates/stock/item_base.html:82
-#: stock/templates/stock/location.html:58 templates/stock_table.html:51
+#: stock/templates/stock/location.html:58 templates/stock_table.html:48
msgid "Transfer stock"
msgstr "Trasferisci giacenza"
-#: stock/templates/stock/item_base.html:85 templates/stock_table.html:54
+#: stock/templates/stock/item_base.html:85 templates/stock_table.html:51
msgid "Assign to customer"
msgstr ""
@@ -6181,7 +6208,7 @@ msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:201
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1807
msgid "Last Updated"
msgstr "Ultimo aggiornamento"
@@ -6218,7 +6245,7 @@ msgid "This stock item is serialized - it has a unique serial number and the qua
msgstr ""
#: stock/templates/stock/item_base.html:296
-#: templates/js/translated/build.js:1317
+#: templates/js/translated/build.js:1318
msgid "No location set"
msgstr "Nessuna posizione impostata"
@@ -6320,11 +6347,11 @@ msgstr "Sottoallocazioni"
msgid "Stock Locations"
msgstr "Posizioni magazzino"
-#: stock/templates/stock/location.html:185 templates/stock_table.html:30
+#: stock/templates/stock/location.html:185 templates/stock_table.html:27
msgid "Printing Actions"
msgstr "Azioni di stampa"
-#: stock/templates/stock/location.html:189 templates/stock_table.html:34
+#: stock/templates/stock/location.html:189 templates/stock_table.html:31
msgid "Print labels"
msgstr "Stampa etichette"
@@ -6348,7 +6375,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:749
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:631
msgid "Convert Stock Item"
msgstr ""
@@ -6369,95 +6396,95 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181 templates/js/translated/stock.js:139
+#: stock/views.py:152 templates/js/translated/stock.js:138
msgid "Edit Stock Location"
msgstr "Modifica Posizione Giacenza"
-#: stock/views.py:288 stock/views.py:728 stock/views.py:854 stock/views.py:1136
+#: stock/views.py:259 stock/views.py:610 stock/views.py:736 stock/views.py:1018
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:274
msgid "Stock Location QR code"
msgstr "QR Code della posizione magazzino"
-#: stock/views.py:322
+#: stock/views.py:293
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:302
msgid "Specify a valid location"
msgstr "Specificare una posizione valida"
-#: stock/views.py:342
+#: stock/views.py:313
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:353
+#: stock/views.py:324
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:370
+#: stock/views.py:341
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:371
+#: stock/views.py:342
msgid "Check the confirmation box"
msgstr ""
-#: stock/views.py:475
+#: stock/views.py:357
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:500
+#: stock/views.py:382
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:597 templates/js/translated/stock.js:1074
+#: stock/views.py:479 templates/js/translated/stock.js:1030
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:608
+#: stock/views.py:490
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:630 templates/js/translated/stock.js:332
+#: stock/views.py:512 templates/js/translated/stock.js:331
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:780
+#: stock/views.py:662
msgid "Create new Stock Location"
msgstr "Crea una nuova Posizione di Giacenza"
-#: stock/views.py:881
+#: stock/views.py:763
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1023 templates/js/translated/stock.js:312
+#: stock/views.py:905 templates/js/translated/stock.js:311
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1105
+#: stock/views.py:987
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1205
+#: stock/views.py:1087
msgid "Delete Stock Location"
msgstr "Elimina Posizione di Giacenza"
-#: stock/views.py:1218
+#: stock/views.py:1100
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1229
+#: stock/views.py:1111
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1236
+#: stock/views.py:1118
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1245
+#: stock/views.py:1127
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -7381,14 +7408,14 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1335
+#: templates/js/translated/bom.js:1340
msgid "Required Quantity"
msgstr "Quantità richiesta"
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:804 templates/js/translated/build.js:1411
-#: templates/js/translated/build.js:2057
+#: templates/js/translated/bom.js:802 templates/js/translated/build.js:1412
+#: templates/js/translated/build.js:2110
#: templates/js/translated/table_filters.js:178
msgid "Available"
msgstr "Disponibile"
@@ -7580,7 +7607,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:982
msgid "Remove stock item"
msgstr ""
@@ -7635,12 +7662,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286
-#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518
+#: templates/js/translated/order.js:429 templates/js/translated/tables.js:53
msgid "Format"
msgstr "Formato"
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519
+#: templates/js/translated/order.js:430
msgid "Select file format"
msgstr ""
@@ -7716,275 +7743,307 @@ msgstr ""
msgid "Edit BOM Item Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:741
+#: templates/js/translated/bom.js:739
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:745 templates/js/translated/build.js:1393
+#: templates/js/translated/bom.js:743 templates/js/translated/build.js:1394
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:750
+#: templates/js/translated/bom.js:748
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:822
+#: templates/js/translated/bom.js:820
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:837
+#: templates/js/translated/bom.js:835
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:844
+#: templates/js/translated/bom.js:842
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:893 templates/js/translated/bom.js:982
+#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:953
+#: templates/js/translated/bom.js:951
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:955
+#: templates/js/translated/bom.js:953
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:957
+#: templates/js/translated/bom.js:955
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138
+#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:961 templates/js/translated/bom.js:1121
+#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1060 templates/js/translated/build.js:1137
+#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1138
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1116
+#: templates/js/translated/bom.js:1121
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:1318 templates/js/translated/build.js:1377
+#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1378
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1340
+#: templates/js/translated/bom.js:1345
msgid "Inherited from parent BOM"
msgstr ""
-#: templates/js/translated/build.js:85
+#: templates/js/translated/build.js:86
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:119
+#: templates/js/translated/build.js:120
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:140
+#: templates/js/translated/build.js:141
msgid "Build order is ready to be completed"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:146
msgid "Build Order is incomplete"
msgstr ""
-#: templates/js/translated/build.js:173
+#: templates/js/translated/build.js:174
msgid "Complete Build Order"
msgstr ""
-#: templates/js/translated/build.js:214 templates/js/translated/stock.js:92
-#: templates/js/translated/stock.js:181
+#: templates/js/translated/build.js:215 templates/js/translated/stock.js:91
+#: templates/js/translated/stock.js:180
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:216 templates/js/translated/stock.js:94
-#: templates/js/translated/stock.js:183
+#: templates/js/translated/build.js:217 templates/js/translated/stock.js:93
+#: templates/js/translated/stock.js:182
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/build.js:225
+#: templates/js/translated/build.js:226
msgid "The Bill of Materials contains trackable parts"
msgstr "La distinta base contiene articoli tracciabili"
-#: templates/js/translated/build.js:226
+#: templates/js/translated/build.js:227
msgid "Build outputs must be generated individually"
msgstr ""
-#: templates/js/translated/build.js:234
+#: templates/js/translated/build.js:235
msgid "Trackable parts can have serial numbers specified"
msgstr ""
-#: templates/js/translated/build.js:235
+#: templates/js/translated/build.js:236
msgid "Enter serial numbers to generate multiple single build outputs"
msgstr ""
-#: templates/js/translated/build.js:242
+#: templates/js/translated/build.js:243
msgid "Create Build Output"
msgstr ""
-#: templates/js/translated/build.js:273
+#: templates/js/translated/build.js:274
msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:284
+#: templates/js/translated/build.js:285
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:293
+#: templates/js/translated/build.js:294
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:301
+#: templates/js/translated/build.js:302
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:324
+#: templates/js/translated/build.js:325
msgid "Are you sure you wish to unallocate stock items from this build?"
msgstr ""
-#: templates/js/translated/build.js:342
+#: templates/js/translated/build.js:343
msgid "Unallocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:360 templates/js/translated/build.js:508
+#: templates/js/translated/build.js:361 templates/js/translated/build.js:509
msgid "Select Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:361 templates/js/translated/build.js:509
+#: templates/js/translated/build.js:362 templates/js/translated/build.js:510
msgid "At least one build output must be selected"
msgstr ""
-#: templates/js/translated/build.js:415 templates/js/translated/build.js:563
+#: templates/js/translated/build.js:416 templates/js/translated/build.js:564
msgid "Output"
msgstr ""
-#: templates/js/translated/build.js:431
+#: templates/js/translated/build.js:432
msgid "Complete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:576
+#: templates/js/translated/build.js:577
msgid "Delete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:665
+#: templates/js/translated/build.js:666
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:703 templates/js/translated/order.js:1965
+#: templates/js/translated/build.js:704 templates/js/translated/order.js:2053
msgid "Location not specified"
msgstr "Posizione non specificata"
-#: templates/js/translated/build.js:885
+#: templates/js/translated/build.js:886
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1334 templates/js/translated/build.js:2068
-#: templates/js/translated/order.js:2099
+#: templates/js/translated/build.js:1335 templates/js/translated/build.js:2121
+#: templates/js/translated/order.js:2187
msgid "Edit stock allocation"
msgstr "Modifica allocazione magazzino"
-#: templates/js/translated/build.js:1336 templates/js/translated/build.js:2069
-#: templates/js/translated/order.js:2100
+#: templates/js/translated/build.js:1337 templates/js/translated/build.js:2122
+#: templates/js/translated/order.js:2188
msgid "Delete stock allocation"
msgstr "Elimina posizione giacenza"
-#: templates/js/translated/build.js:1354
+#: templates/js/translated/build.js:1355
msgid "Edit Allocation"
msgstr "Modifica Posizione"
-#: templates/js/translated/build.js:1364
+#: templates/js/translated/build.js:1365
msgid "Remove Allocation"
msgstr "Rimuovi Posizione"
-#: templates/js/translated/build.js:1389
+#: templates/js/translated/build.js:1390
msgid "Substitute parts available"
msgstr ""
-#: templates/js/translated/build.js:1406
+#: templates/js/translated/build.js:1407
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1416 templates/js/translated/build.js:1656
-#: templates/js/translated/build.js:2064 templates/js/translated/order.js:2366
+#: templates/js/translated/build.js:1417 templates/js/translated/build.js:1667
+#: templates/js/translated/build.js:2117 templates/js/translated/order.js:2454
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1472 templates/js/translated/order.js:2446
+#: templates/js/translated/build.js:1473 templates/js/translated/order.js:2534
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:1476 templates/stock_table.html:53
+#: templates/js/translated/build.js:1477 templates/stock_table.html:50
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1479 templates/js/translated/order.js:2439
+#: templates/js/translated/build.js:1480 templates/js/translated/order.js:2527
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:1558 templates/js/translated/order.js:1616
-msgid "Specify stock allocation quantity"
-msgstr "Specificare il quantitativo assegnato allo stock"
-
-#: templates/js/translated/build.js:1629 templates/js/translated/label.js:134
-#: templates/js/translated/order.js:1667 templates/js/translated/report.js:225
+#: templates/js/translated/build.js:1519 templates/js/translated/label.js:134
+#: templates/js/translated/order.js:1755 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr "Seleziona Articoli"
-#: templates/js/translated/build.js:1630 templates/js/translated/order.js:1668
+#: templates/js/translated/build.js:1520 templates/js/translated/order.js:1756
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:1644 templates/js/translated/order.js:1682
+#: templates/js/translated/build.js:1569 templates/js/translated/order.js:1704
+msgid "Specify stock allocation quantity"
+msgstr "Specificare il quantitativo assegnato allo stock"
+
+#: templates/js/translated/build.js:1640
+msgid "All Parts Allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:1641
+msgid "All selected parts have been fully allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:1655 templates/js/translated/order.js:1770
msgid "Select source location (leave blank to take from all locations)"
msgstr "Seleziona la posizione di origine (lascia vuoto per prendere da tutte le posizioni)"
-#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1717
+#: templates/js/translated/build.js:1684 templates/js/translated/order.js:1805
msgid "Confirm stock allocation"
msgstr "Conferma l'assegnazione della giacenza"
-#: templates/js/translated/build.js:1674
+#: templates/js/translated/build.js:1685
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1730
+#: templates/js/translated/build.js:1696 templates/js/translated/order.js:1818
msgid "No matching stock locations"
msgstr "Nessuna posizione di magazzino corrispondente"
-#: templates/js/translated/build.js:1757 templates/js/translated/order.js:1807
+#: templates/js/translated/build.js:1768 templates/js/translated/order.js:1895
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1875
+#: templates/js/translated/build.js:1865
+msgid "Automatic Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1866
+msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
+msgstr ""
+
+#: templates/js/translated/build.js:1868
+msgid "If a location is specifed, stock will only be allocated from that location"
+msgstr ""
+
+#: templates/js/translated/build.js:1869
+msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
+msgstr ""
+
+#: templates/js/translated/build.js:1870
+msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
+msgstr ""
+
+#: templates/js/translated/build.js:1890
+msgid "Allocate Stock Items"
+msgstr ""
+
+#: templates/js/translated/build.js:1928
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1892 templates/js/translated/part.js:1235
-#: templates/js/translated/part.js:1646 templates/js/translated/stock.js:1643
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/build.js:1945 templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1647 templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:2567
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1912
+#: templates/js/translated/build.js:1965
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1976 templates/js/translated/stock.js:2823
+#: templates/js/translated/build.js:2029 templates/js/translated/stock.js:2779
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1988
+#: templates/js/translated/build.js:2041
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:2045
+#: templates/js/translated/build.js:2098
msgid "No parts allocated for"
msgstr ""
@@ -8049,34 +8108,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:517
-#: templates/js/translated/part.js:602
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:518
+#: templates/js/translated/part.js:603
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:521
-#: templates/js/translated/part.js:606
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:522
+#: templates/js/translated/part.js:607
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:696
+#: templates/js/translated/company.js:631 templates/js/translated/part.js:697
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:738
+#: templates/js/translated/company.js:668 templates/js/translated/part.js:739
msgid "Edit parameter"
msgstr "Modifica parametro"
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:739
+#: templates/js/translated/company.js:669 templates/js/translated/part.js:740
msgid "Delete parameter"
msgstr "Elimina il parametro"
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:756
+#: templates/js/translated/company.js:688 templates/js/translated/part.js:757
msgid "Edit Parameter"
msgstr "Modifica parametro"
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:768
+#: templates/js/translated/company.js:699 templates/js/translated/part.js:769
msgid "Delete Parameter"
msgstr "Elimina Parametri"
@@ -8085,12 +8144,12 @@ msgid "No supplier parts found"
msgstr "Nessun fornitore trovato"
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:429
+#: templates/js/translated/filters.js:441
msgid "true"
msgstr "vero"
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:430
+#: templates/js/translated/filters.js:442
msgid "false"
msgstr "falso"
@@ -8098,19 +8157,23 @@ msgstr "falso"
msgid "Select filter"
msgstr "Seleziona filtro"
-#: templates/js/translated/filters.js:286
+#: templates/js/translated/filters.js:288
+msgid "Download data"
+msgstr ""
+
+#: templates/js/translated/filters.js:291
msgid "Reload data"
msgstr "Ricarica dati"
-#: templates/js/translated/filters.js:290
+#: templates/js/translated/filters.js:295
msgid "Add new filter"
msgstr "Aggiungi nuovo filtro"
-#: templates/js/translated/filters.js:293
+#: templates/js/translated/filters.js:298
msgid "Clear all filters"
msgstr "Cancella tutti i filtri"
-#: templates/js/translated/filters.js:338
+#: templates/js/translated/filters.js:350
msgid "Create filter"
msgstr "Crea filtro"
@@ -8181,7 +8244,7 @@ msgid "NO"
msgstr "NO"
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1050
+#: templates/js/translated/stock.js:1006
msgid "Select Stock Items"
msgstr ""
@@ -8354,206 +8417,214 @@ msgstr "Aggiungi cliente"
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:366
+#: templates/js/translated/order.js:426
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:460
+#: templates/js/translated/order.js:520
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:461
+#: templates/js/translated/order.js:521
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:481 templates/js/translated/order.js:580
+#: templates/js/translated/order.js:541 templates/js/translated/order.js:640
msgid "Add batch code"
msgstr ""
-#: templates/js/translated/order.js:487 templates/js/translated/order.js:591
+#: templates/js/translated/order.js:547 templates/js/translated/order.js:651
msgid "Add serial numbers"
msgstr ""
-#: templates/js/translated/order.js:499
+#: templates/js/translated/order.js:559
msgid "Quantity to receive"
msgstr "Quantità da ricevere"
-#: templates/js/translated/order.js:563 templates/js/translated/stock.js:2263
+#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2219
msgid "Stock Status"
msgstr "Stato giacenza"
-#: templates/js/translated/order.js:652
+#: templates/js/translated/order.js:712
msgid "Order Code"
msgstr "Codice ordine"
-#: templates/js/translated/order.js:653
+#: templates/js/translated/order.js:713
msgid "Ordered"
msgstr "Ordinato"
-#: templates/js/translated/order.js:655
+#: templates/js/translated/order.js:715
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/order.js:674
+#: templates/js/translated/order.js:734
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:675
+#: templates/js/translated/order.js:735
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:865 templates/js/translated/part.js:809
+#: templates/js/translated/order.js:925 templates/js/translated/part.js:810
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:890 templates/js/translated/order.js:1338
+#: templates/js/translated/order.js:950 templates/js/translated/order.js:1426
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:1018 templates/js/translated/order.js:2496
+#: templates/js/translated/order.js:1074 templates/js/translated/order.js:2585
+msgid "Duplicate Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:1104 templates/js/translated/order.js:2607
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1030 templates/js/translated/order.js:2507
+#: templates/js/translated/order.js:1117 templates/js/translated/order.js:2618
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:1073
+#: templates/js/translated/order.js:1160
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:1100 templates/js/translated/order.js:2255
+#: templates/js/translated/order.js:1187 templates/js/translated/order.js:2343
msgid "Total"
msgstr "Totale"
-#: templates/js/translated/order.js:1154 templates/js/translated/order.js:2280
-#: templates/js/translated/part.js:1863 templates/js/translated/part.js:2074
+#: templates/js/translated/order.js:1241 templates/js/translated/order.js:2368
+#: templates/js/translated/part.js:1864 templates/js/translated/part.js:2075
msgid "Unit Price"
msgstr "Prezzo Unitario"
-#: templates/js/translated/order.js:1169 templates/js/translated/order.js:2296
+#: templates/js/translated/order.js:1256 templates/js/translated/order.js:2384
msgid "Total Price"
msgstr "Prezzo Totale"
-#: templates/js/translated/order.js:1210 templates/js/translated/order.js:2338
-#: templates/js/translated/part.js:918
+#: templates/js/translated/order.js:1297 templates/js/translated/order.js:2426
+#: templates/js/translated/part.js:919
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:1269 templates/js/translated/part.js:964
+#: templates/js/translated/order.js:1356 templates/js/translated/part.js:965
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1273 templates/js/translated/order.js:2452
+#: templates/js/translated/order.js:1360 templates/js/translated/order.js:2540
+msgid "Duplicate line item"
+msgstr ""
+
+#: templates/js/translated/order.js:1361 templates/js/translated/order.js:2541
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:1274 templates/js/translated/order.js:2456
+#: templates/js/translated/order.js:1362 templates/js/translated/order.js:2545
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1314
+#: templates/js/translated/order.js:1402
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1352
+#: templates/js/translated/order.js:1440
msgid "Invalid Customer"
msgstr "Cliente non valido"
-#: templates/js/translated/order.js:1439
+#: templates/js/translated/order.js:1527
msgid "Edit shipment"
msgstr ""
-#: templates/js/translated/order.js:1442
+#: templates/js/translated/order.js:1530
msgid "Complete shipment"
msgstr ""
-#: templates/js/translated/order.js:1447
+#: templates/js/translated/order.js:1535
msgid "Delete shipment"
msgstr ""
-#: templates/js/translated/order.js:1467
+#: templates/js/translated/order.js:1555
msgid "Edit Shipment"
msgstr ""
-#: templates/js/translated/order.js:1484
+#: templates/js/translated/order.js:1572
msgid "Delete Shipment"
msgstr ""
-#: templates/js/translated/order.js:1518
+#: templates/js/translated/order.js:1606
msgid "No matching shipments found"
msgstr ""
-#: templates/js/translated/order.js:1528
+#: templates/js/translated/order.js:1616
msgid "Shipment Reference"
msgstr ""
-#: templates/js/translated/order.js:1552
+#: templates/js/translated/order.js:1640
msgid "Not shipped"
msgstr ""
-#: templates/js/translated/order.js:1558
+#: templates/js/translated/order.js:1646
msgid "Tracking"
msgstr ""
-#: templates/js/translated/order.js:1718
+#: templates/js/translated/order.js:1806
msgid "Allocate Stock Items to Sales Order"
msgstr ""
-#: templates/js/translated/order.js:1926
+#: templates/js/translated/order.js:2014
msgid "No sales order allocations found"
msgstr "Nessun ordine di vendita trovato"
-#: templates/js/translated/order.js:2015
+#: templates/js/translated/order.js:2103
msgid "Edit Stock Allocation"
msgstr "Modifica posizione giacenza"
-#: templates/js/translated/order.js:2032
+#: templates/js/translated/order.js:2120
msgid "Confirm Delete Operation"
msgstr "Conferma Operazione Eliminazione"
-#: templates/js/translated/order.js:2033
+#: templates/js/translated/order.js:2121
msgid "Delete Stock Allocation"
msgstr "Elimina posizione giacenza"
-#: templates/js/translated/order.js:2076 templates/js/translated/order.js:2165
-#: templates/js/translated/stock.js:1559
+#: templates/js/translated/order.js:2164 templates/js/translated/order.js:2253
+#: templates/js/translated/stock.js:1515
msgid "Shipped to customer"
msgstr "Spedito al cliente"
-#: templates/js/translated/order.js:2084 templates/js/translated/order.js:2174
+#: templates/js/translated/order.js:2172 templates/js/translated/order.js:2262
msgid "Stock location not specified"
msgstr "Nessun posizione specificata"
-#: templates/js/translated/order.js:2436
+#: templates/js/translated/order.js:2524
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:2442
+#: templates/js/translated/order.js:2530
msgid "Purchase stock"
msgstr "Prezzo d'acquisto"
-#: templates/js/translated/order.js:2449 templates/js/translated/order.js:2616
+#: templates/js/translated/order.js:2537 templates/js/translated/order.js:2727
msgid "Calculate price"
msgstr "Calcola il prezzo"
-#: templates/js/translated/order.js:2460
+#: templates/js/translated/order.js:2549
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:2463
+#: templates/js/translated/order.js:2552
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:2522
+#: templates/js/translated/order.js:2633
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:2624
+#: templates/js/translated/order.js:2735
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:2638
+#: templates/js/translated/order.js:2749
msgid "No matching line items"
msgstr ""
@@ -8677,117 +8748,117 @@ msgstr "Convalida la distinta dei materiali"
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:481
+#: templates/js/translated/part.js:482
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:509 templates/js/translated/part.js:594
+#: templates/js/translated/part.js:510 templates/js/translated/part.js:595
msgid "Trackable part"
msgstr "Parte tracciabile"
-#: templates/js/translated/part.js:513 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:514 templates/js/translated/part.js:599
msgid "Virtual part"
msgstr "Parte virtuale"
-#: templates/js/translated/part.js:525
+#: templates/js/translated/part.js:526
msgid "Subscribed part"
msgstr "Parte sottoscritta"
-#: templates/js/translated/part.js:529
+#: templates/js/translated/part.js:530
msgid "Salable part"
msgstr "Parte vendibile"
-#: templates/js/translated/part.js:644
+#: templates/js/translated/part.js:645
msgid "No variants found"
msgstr "Nessuna variante trovata"
-#: templates/js/translated/part.js:1034
+#: templates/js/translated/part.js:1035
msgid "Delete part relationship"
msgstr "Elimina relazione tra i componenti"
-#: templates/js/translated/part.js:1058
+#: templates/js/translated/part.js:1059
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1125 templates/js/translated/part.js:1385
+#: templates/js/translated/part.js:1126 templates/js/translated/part.js:1386
msgid "No parts found"
msgstr "Nessun articolo trovato"
-#: templates/js/translated/part.js:1295
+#: templates/js/translated/part.js:1296
msgid "No category"
msgstr "Nessuna categoria"
-#: templates/js/translated/part.js:1318
+#: templates/js/translated/part.js:1319
#: templates/js/translated/table_filters.js:425
msgid "Low stock"
msgstr "In esaurimento"
-#: templates/js/translated/part.js:1409 templates/js/translated/part.js:1581
-#: templates/js/translated/stock.js:2572
+#: templates/js/translated/part.js:1410 templates/js/translated/part.js:1582
+#: templates/js/translated/stock.js:2528
msgid "Display as list"
msgstr "Visualizza come elenco"
-#: templates/js/translated/part.js:1425
+#: templates/js/translated/part.js:1426
msgid "Display as grid"
msgstr "Visualizza come griglia"
-#: templates/js/translated/part.js:1600 templates/js/translated/stock.js:2591
+#: templates/js/translated/part.js:1601 templates/js/translated/stock.js:2547
msgid "Display as tree"
msgstr "Visualizza come struttura ad albero"
-#: templates/js/translated/part.js:1664
+#: templates/js/translated/part.js:1665
msgid "Subscribed category"
msgstr "Categoria sottoscritta"
-#: templates/js/translated/part.js:1678 templates/js/translated/stock.js:2635
+#: templates/js/translated/part.js:1679 templates/js/translated/stock.js:2591
msgid "Path"
msgstr "Percorso"
-#: templates/js/translated/part.js:1722
+#: templates/js/translated/part.js:1723
msgid "No test templates matching query"
msgstr "Nessun modello di test corrispondente"
-#: templates/js/translated/part.js:1773 templates/js/translated/stock.js:1270
+#: templates/js/translated/part.js:1774 templates/js/translated/stock.js:1226
msgid "Edit test result"
msgstr "Modificare il risultato del test"
-#: templates/js/translated/part.js:1774 templates/js/translated/stock.js:1271
-#: templates/js/translated/stock.js:1517
+#: templates/js/translated/part.js:1775 templates/js/translated/stock.js:1227
+#: templates/js/translated/stock.js:1473
msgid "Delete test result"
msgstr "Cancellare il risultato del test"
-#: templates/js/translated/part.js:1780
+#: templates/js/translated/part.js:1781
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1802
+#: templates/js/translated/part.js:1803
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1816
+#: templates/js/translated/part.js:1817
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1841
+#: templates/js/translated/part.js:1842
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1896
+#: templates/js/translated/part.js:1897
#, python-brace-format
msgid "Edit ${human_name}"
msgstr "Modifica ${human_name}"
-#: templates/js/translated/part.js:1897
+#: templates/js/translated/part.js:1898
#, python-brace-format
msgid "Delete ${human_name}"
msgstr "Elimina ${human_name}"
-#: templates/js/translated/part.js:1998
+#: templates/js/translated/part.js:1999
msgid "Single Price"
msgstr "Prezzo Singolo"
-#: templates/js/translated/part.js:2017
+#: templates/js/translated/part.js:2018
msgid "Single Price Difference"
msgstr ""
@@ -8861,368 +8932,356 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:102
+#: templates/js/translated/stock.js:101
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:111
+#: templates/js/translated/stock.js:110
msgid "Parent stock location"
msgstr "Posizione giacenza principale"
-#: templates/js/translated/stock.js:154
+#: templates/js/translated/stock.js:153
msgid "New Stock Location"
msgstr "Nuova posizione giacenza"
-#: templates/js/translated/stock.js:194
+#: templates/js/translated/stock.js:193
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:233
+#: templates/js/translated/stock.js:232
msgid "Enter initial quantity for this stock item"
msgstr "Inserisci quantità iniziale per questo articolo in giacenza"
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/stock.js:238
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr "Inserire i numeri di serie per la nuova giacenza (o lasciare vuoto)"
-#: templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:381
msgid "Created new stock item"
msgstr "Crea nuova allocazione magazzino"
-#: templates/js/translated/stock.js:395
+#: templates/js/translated/stock.js:394
msgid "Created multiple stock items"
msgstr "Creato più elementi stock"
-#: templates/js/translated/stock.js:420
+#: templates/js/translated/stock.js:419
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425
+#: templates/js/translated/stock.js:423 templates/js/translated/stock.js:424
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:441
+#: templates/js/translated/stock.js:440
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:461
+#: templates/js/translated/stock.js:460
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:470
+#: templates/js/translated/stock.js:469
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:515
-msgid "Export Stock"
-msgstr "Esporta giacenza"
-
-#: templates/js/translated/stock.js:526
-msgid "Include Sublocations"
-msgstr "Includi sotto allocazioni"
-
-#: templates/js/translated/stock.js:527
-msgid "Include stock items in sublocations"
-msgstr "Includi elementi in giacenza nelle sottoallocazioni"
-
-#: templates/js/translated/stock.js:636
+#: templates/js/translated/stock.js:592
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:637
+#: templates/js/translated/stock.js:593
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:714
+#: templates/js/translated/stock.js:670
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:715
+#: templates/js/translated/stock.js:671
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:717
+#: templates/js/translated/stock.js:673
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:718
+#: templates/js/translated/stock.js:674
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:804
+#: templates/js/translated/stock.js:760
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:805
+#: templates/js/translated/stock.js:761
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:900
+#: templates/js/translated/stock.js:856
msgid "Transfer Stock"
msgstr "Trasferisci giacenza"
-#: templates/js/translated/stock.js:901
+#: templates/js/translated/stock.js:857
msgid "Move"
msgstr "Sposta"
-#: templates/js/translated/stock.js:907
+#: templates/js/translated/stock.js:863
msgid "Count Stock"
msgstr "Conta giacenza"
-#: templates/js/translated/stock.js:908
+#: templates/js/translated/stock.js:864
msgid "Count"
msgstr "Conta"
-#: templates/js/translated/stock.js:912
+#: templates/js/translated/stock.js:868
msgid "Remove Stock"
msgstr "Rimuovi giacenza"
-#: templates/js/translated/stock.js:913
+#: templates/js/translated/stock.js:869
msgid "Take"
msgstr "Prendi"
-#: templates/js/translated/stock.js:917
+#: templates/js/translated/stock.js:873
msgid "Add Stock"
msgstr "Aggiungi giacenza"
-#: templates/js/translated/stock.js:918 users/models.py:213
+#: templates/js/translated/stock.js:874 users/models.py:213
msgid "Add"
msgstr "Aggiungi"
-#: templates/js/translated/stock.js:922
+#: templates/js/translated/stock.js:878
msgid "Delete Stock"
msgstr "Elimina Stock"
-#: templates/js/translated/stock.js:1011
+#: templates/js/translated/stock.js:967
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1011
+#: templates/js/translated/stock.js:967
msgid "Specify stock quantity"
msgstr "Specificare la quantità di magazzino"
-#: templates/js/translated/stock.js:1051
+#: templates/js/translated/stock.js:1007
msgid "You must select at least one available stock item"
msgstr "Devi selezionare almeno un articolo disponibile"
-#: templates/js/translated/stock.js:1209
+#: templates/js/translated/stock.js:1165
msgid "PASS"
msgstr "PASS"
-#: templates/js/translated/stock.js:1211
+#: templates/js/translated/stock.js:1167
msgid "FAIL"
msgstr "FAIL"
-#: templates/js/translated/stock.js:1216
+#: templates/js/translated/stock.js:1172
msgid "NO RESULT"
msgstr "NESSUN RISULTATO"
-#: templates/js/translated/stock.js:1263
+#: templates/js/translated/stock.js:1219
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1266
+#: templates/js/translated/stock.js:1222
msgid "Add test result"
msgstr "Aggiungi risultato test"
-#: templates/js/translated/stock.js:1292
+#: templates/js/translated/stock.js:1248
msgid "No test results found"
msgstr "Nessun risultato di prova trovato"
-#: templates/js/translated/stock.js:1348
+#: templates/js/translated/stock.js:1304
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1500
+#: templates/js/translated/stock.js:1456
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1522
+#: templates/js/translated/stock.js:1478
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1551
+#: templates/js/translated/stock.js:1507
msgid "In production"
msgstr "In produzione"
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1511
msgid "Installed in Stock Item"
msgstr "Installato nell'elemento stock"
-#: templates/js/translated/stock.js:1563
+#: templates/js/translated/stock.js:1519
msgid "Assigned to Sales Order"
msgstr "Assegnato all'ordine di vendita"
-#: templates/js/translated/stock.js:1569
+#: templates/js/translated/stock.js:1525
msgid "No stock location set"
msgstr "Nessuna giacenza impostata"
-#: templates/js/translated/stock.js:1727
+#: templates/js/translated/stock.js:1683
msgid "Stock item is in production"
msgstr "L'articolo di magazzino è in produzione"
-#: templates/js/translated/stock.js:1732
+#: templates/js/translated/stock.js:1688
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1691
msgid "Stock item assigned to customer"
msgstr "Articolo stock assegnato al cliente"
-#: templates/js/translated/stock.js:1739
+#: templates/js/translated/stock.js:1695
msgid "Stock item has expired"
msgstr "L'articolo stock è scaduto"
-#: templates/js/translated/stock.js:1741
+#: templates/js/translated/stock.js:1697
msgid "Stock item will expire soon"
msgstr "Articolo in giacenza prossimo alla scadenza"
-#: templates/js/translated/stock.js:1747
+#: templates/js/translated/stock.js:1703
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1749
+#: templates/js/translated/stock.js:1705
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1751
+#: templates/js/translated/stock.js:1707
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1756
+#: templates/js/translated/stock.js:1712
msgid "Stock item has been installed in another item"
msgstr "L'elemento stock è stato installato in un altro articolo"
-#: templates/js/translated/stock.js:1763
+#: templates/js/translated/stock.js:1719
msgid "Stock item has been rejected"
msgstr "L'articolo stock è stato rifiutato"
-#: templates/js/translated/stock.js:1765
+#: templates/js/translated/stock.js:1721
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1767
+#: templates/js/translated/stock.js:1723
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1771
+#: templates/js/translated/stock.js:1727
#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr "Esaurito"
-#: templates/js/translated/stock.js:1821
+#: templates/js/translated/stock.js:1777
msgid "Stocktake"
msgstr "Inventario"
-#: templates/js/translated/stock.js:1903
+#: templates/js/translated/stock.js:1859
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1941
+#: templates/js/translated/stock.js:1897
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1962 templates/js/translated/stock.js:2010
+#: templates/js/translated/stock.js:1918 templates/js/translated/stock.js:1966
msgid "items"
msgstr "elementi"
-#: templates/js/translated/stock.js:2050
+#: templates/js/translated/stock.js:2006
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:2077
+#: templates/js/translated/stock.js:2033
msgid "locations"
msgstr "posizione"
-#: templates/js/translated/stock.js:2079
+#: templates/js/translated/stock.js:2035
msgid "Undefined location"
msgstr "Posizione non definita"
-#: templates/js/translated/stock.js:2278
+#: templates/js/translated/stock.js:2234
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2292
+#: templates/js/translated/stock.js:2248
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2293
+#: templates/js/translated/stock.js:2249
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2472
+#: templates/js/translated/stock.js:2428
msgid "Allocated Quantity"
msgstr ""
-#: templates/js/translated/stock.js:2682
+#: templates/js/translated/stock.js:2638
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2707
+#: templates/js/translated/stock.js:2663
msgid "Location no longer exists"
msgstr "La posizione non esiste più"
-#: templates/js/translated/stock.js:2726
+#: templates/js/translated/stock.js:2682
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2745
+#: templates/js/translated/stock.js:2701
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2763
+#: templates/js/translated/stock.js:2719
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2786
+#: templates/js/translated/stock.js:2742
msgid "Added"
msgstr "Aggiunto"
-#: templates/js/translated/stock.js:2794
+#: templates/js/translated/stock.js:2750
msgid "Removed"
msgstr "Rimosso"
-#: templates/js/translated/stock.js:2835
+#: templates/js/translated/stock.js:2791
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2836
+#: templates/js/translated/stock.js:2792
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2887
+#: templates/js/translated/stock.js:2843
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2938
+#: templates/js/translated/stock.js:2894
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2974
+#: templates/js/translated/stock.js:2930
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2975
+#: templates/js/translated/stock.js:2931
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2977
+#: templates/js/translated/stock.js:2933
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2978
+#: templates/js/translated/stock.js:2934
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2979
+#: templates/js/translated/stock.js:2935
msgid "The Stock Item is serialized and does not belong to another item"
msgstr ""
-#: templates/js/translated/stock.js:2992
+#: templates/js/translated/stock.js:2948
msgid "Select part to install"
msgstr ""
@@ -9429,60 +9488,68 @@ msgstr "Disponibilità"
msgid "Purchasable"
msgstr "Acquistabile"
-#: templates/js/translated/tables.js:368
+#: templates/js/translated/tables.js:50
+msgid "Export Table Data"
+msgstr ""
+
+#: templates/js/translated/tables.js:54
+msgid "Select File Format"
+msgstr ""
+
+#: templates/js/translated/tables.js:433
msgid "Loading data"
msgstr "Caricamento dati"
-#: templates/js/translated/tables.js:371
+#: templates/js/translated/tables.js:436
msgid "rows per page"
msgstr "righe per pagina"
-#: templates/js/translated/tables.js:376
+#: templates/js/translated/tables.js:441
msgid "Showing all rows"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "Showing"
msgstr "Visualizzo"
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "to"
msgstr "a"
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "of"
msgstr "di"
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "rows"
msgstr "righe"
-#: templates/js/translated/tables.js:382 templates/search_form.html:6
+#: templates/js/translated/tables.js:447 templates/search_form.html:6
#: templates/search_form.html:7
msgid "Search"
msgstr "Cerca"
-#: templates/js/translated/tables.js:385
+#: templates/js/translated/tables.js:450
msgid "No matching results"
msgstr "Nessun risultato corrispondente"
-#: templates/js/translated/tables.js:388
+#: templates/js/translated/tables.js:453
msgid "Hide/Show pagination"
msgstr "Mostra/nascondi la paginazione"
-#: templates/js/translated/tables.js:391
+#: templates/js/translated/tables.js:456
msgid "Refresh"
msgstr "Aggiorna"
-#: templates/js/translated/tables.js:394
+#: templates/js/translated/tables.js:459
msgid "Toggle"
msgstr "Attiva/disattiva"
-#: templates/js/translated/tables.js:397
+#: templates/js/translated/tables.js:462
msgid "Columns"
msgstr "Colonne"
-#: templates/js/translated/tables.js:400
+#: templates/js/translated/tables.js:465
msgid "All"
msgstr "Tutti"
@@ -9586,63 +9653,59 @@ msgstr "Email Settings"
msgid "Email settings not configured"
msgstr "Impostazioni dell'email non configurate"
-#: templates/stock_table.html:14
-msgid "Export Stock Information"
-msgstr "Esporta Informazioni Di Giacenza"
-
-#: templates/stock_table.html:20
+#: templates/stock_table.html:17
msgid "Barcode Actions"
msgstr "Azioni Barcode"
-#: templates/stock_table.html:36
+#: templates/stock_table.html:33
msgid "Print test reports"
msgstr "Stampa report di prova"
-#: templates/stock_table.html:43
+#: templates/stock_table.html:40
msgid "Stock Options"
msgstr "Opzioni Magazzino"
-#: templates/stock_table.html:48
+#: templates/stock_table.html:45
msgid "Add to selected stock items"
msgstr "Aggiungi alle voci stock selezionate"
-#: templates/stock_table.html:49
+#: templates/stock_table.html:46
msgid "Remove from selected stock items"
msgstr "Rimuovi dagli elementi stock selezionati"
-#: templates/stock_table.html:50
+#: templates/stock_table.html:47
msgid "Stocktake selected stock items"
msgstr "Inventario articoli di magazzino selezionati"
-#: templates/stock_table.html:51
+#: templates/stock_table.html:48
msgid "Move selected stock items"
msgstr "Sposta gli elementi stock selezionati"
-#: templates/stock_table.html:52
+#: templates/stock_table.html:49
msgid "Merge selected stock items"
msgstr ""
-#: templates/stock_table.html:52
+#: templates/stock_table.html:49
msgid "Merge stock"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:50
msgid "Order selected items"
msgstr "Ordina articolo selezionato"
-#: templates/stock_table.html:55
+#: templates/stock_table.html:52
msgid "Change status"
msgstr "Modifica stato"
-#: templates/stock_table.html:55
+#: templates/stock_table.html:52
msgid "Change stock status"
msgstr "Modifica stato stock"
-#: templates/stock_table.html:58
+#: templates/stock_table.html:55
msgid "Delete selected items"
msgstr "Elimina articoli selezionati"
-#: templates/stock_table.html:58
+#: templates/stock_table.html:55
msgid "Delete stock"
msgstr ""
diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po
index 415cbec42b..7f02fd2bff 100644
--- a/InvenTree/locale/ja/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ja/LC_MESSAGES/django.po
@@ -1,10 +1,10 @@
-#: templates/js/translated/order.js:2090
+#: templates/js/translated/order.js:2178
msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-03-01 13:34+0000\n"
-"PO-Revision-Date: 2022-03-01 14:09\n"
+"POT-Creation-Date: 2022-03-07 04:31+0000\n"
+"PO-Revision-Date: 2022-03-07 04:47\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
"Language: ja_JP\n"
@@ -86,7 +86,7 @@ msgid "Duplicate serial: {sn}"
msgstr ""
#: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435
-#: stock/views.py:1101
+#: stock/views.py:983
msgid "Invalid quantity provided"
msgstr "数量コードが無効です"
@@ -114,100 +114,100 @@ msgstr "シリアル番号が見つかりません"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:176
+#: InvenTree/models.py:185
msgid "Missing file"
msgstr ""
-#: InvenTree/models.py:177
+#: InvenTree/models.py:186
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:188 stock/models.py:2071
+#: InvenTree/models.py:197 stock/models.py:2123
#: templates/js/translated/attachment.js:119
msgid "Attachment"
msgstr "添付ファイル"
-#: InvenTree/models.py:189
+#: InvenTree/models.py:198
msgid "Select file to attach"
msgstr "添付ファイルを選択"
-#: InvenTree/models.py:195 company/models.py:131 company/models.py:348
+#: InvenTree/models.py:204 company/models.py:131 company/models.py:348
#: company/models.py:564 order/models.py:127 part/models.py:860
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1346
+#: templates/js/translated/company.js:829 templates/js/translated/part.js:1347
msgid "Link"
msgstr ""
-#: InvenTree/models.py:196 build/models.py:330 part/models.py:861
-#: stock/models.py:566
+#: InvenTree/models.py:205 build/models.py:332 part/models.py:861
+#: stock/models.py:618
msgid "Link to external URL"
msgstr ""
-#: InvenTree/models.py:199 templates/js/translated/attachment.js:163
+#: InvenTree/models.py:208 templates/js/translated/attachment.js:163
msgid "Comment"
msgstr "コメント:"
-#: InvenTree/models.py:199
+#: InvenTree/models.py:208
msgid "File comment"
msgstr "ファイルコメント"
-#: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1277
+#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1277
#: common/models.py:1278 common/models.py:1506 common/models.py:1507
-#: part/models.py:2303 part/models.py:2323
+#: part/models.py:2317 part/models.py:2337
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2817
+#: templates/js/translated/stock.js:2773
msgid "User"
msgstr "ユーザー"
-#: InvenTree/models.py:209
+#: InvenTree/models.py:218
msgid "upload date"
msgstr "アップロード日時"
-#: InvenTree/models.py:232
+#: InvenTree/models.py:241
msgid "Filename must not be empty"
msgstr ""
-#: InvenTree/models.py:255
+#: InvenTree/models.py:264
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:265
+#: InvenTree/models.py:274
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:268
+#: InvenTree/models.py:277
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:275
+#: InvenTree/models.py:284
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:282
+#: InvenTree/models.py:291
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:317
+#: InvenTree/models.py:326
msgid "Invalid choice"
msgstr "無効な選択です"
-#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1492
+#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1492
#: company/models.py:415 label/models.py:112 part/models.py:804
-#: part/models.py:2487 plugin/models.py:40 report/models.py:181
+#: part/models.py:2501 plugin/models.py:40 report/models.py:181
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:48
#: templates/InvenTree/settings/plugin.html:125
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:319
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:567
-#: templates/js/translated/part.js:706 templates/js/translated/part.js:1653
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/company.js:641 templates/js/translated/part.js:568
+#: templates/js/translated/part.js:707 templates/js/translated/part.js:1654
+#: templates/js/translated/stock.js:2573
msgid "Name"
msgstr "お名前"
-#: InvenTree/models.py:340 build/models.py:207
+#: InvenTree/models.py:349 build/models.py:209
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
@@ -219,28 +219,28 @@ msgstr "お名前"
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:92
#: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:765
-#: templates/js/translated/build.js:1920 templates/js/translated/company.js:345
+#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763
+#: templates/js/translated/build.js:1973 templates/js/translated/company.js:345
#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:911
-#: templates/js/translated/order.js:1105 templates/js/translated/order.js:1366
-#: templates/js/translated/part.js:626 templates/js/translated/part.js:1021
-#: templates/js/translated/part.js:1106 templates/js/translated/part.js:1276
-#: templates/js/translated/part.js:1672 templates/js/translated/part.js:1741
-#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2446
-#: templates/js/translated/stock.js:2629 templates/js/translated/stock.js:2667
+#: templates/js/translated/company.js:840 templates/js/translated/order.js:971
+#: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454
+#: templates/js/translated/part.js:627 templates/js/translated/part.js:1022
+#: templates/js/translated/part.js:1107 templates/js/translated/part.js:1277
+#: templates/js/translated/part.js:1673 templates/js/translated/part.js:1742
+#: templates/js/translated/stock.js:1656 templates/js/translated/stock.js:2402
+#: templates/js/translated/stock.js:2585 templates/js/translated/stock.js:2623
msgid "Description"
msgstr "説明"
-#: InvenTree/models.py:341
+#: InvenTree/models.py:350
msgid "Description (optional)"
msgstr "説明 (オプション)"
-#: InvenTree/models.py:349
+#: InvenTree/models.py:358
msgid "parent"
msgstr "親"
-#: InvenTree/serializers.py:65 part/models.py:2805
+#: InvenTree/serializers.py:65 part/models.py:2820
msgid "Must be a valid number"
msgstr "有効な数字でなければなりません"
@@ -294,87 +294,87 @@ msgstr ""
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:665
msgid "German"
msgstr "ドイツ語"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:666
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:667
msgid "English"
msgstr "英語"
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:668
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:669
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:670
msgid "French"
msgstr "フランス語"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:671
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:672
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:673
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:674
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:675
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:676
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:677
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:678
msgid "Polish"
msgstr "ポーランド語"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:679
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:680
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:681
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:682
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:683
msgid "Turkish"
msgstr "トルコ語"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:684
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:685
msgid "Chinese"
msgstr ""
@@ -421,7 +421,7 @@ msgid "Returned"
msgstr "返品済"
#: InvenTree/status_codes.py:143 order/models.py:997
-#: templates/js/translated/order.js:2097 templates/js/translated/order.js:2394
+#: templates/js/translated/order.js:2185 templates/js/translated/order.js:2482
msgid "Shipped"
msgstr "発送済み"
@@ -501,7 +501,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2204
+#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2160
msgid "Merged stock items"
msgstr ""
@@ -593,43 +593,43 @@ msgstr ""
msgid "System Information"
msgstr ""
-#: barcodes/api.py:54 barcodes/api.py:152
+#: barcodes/api.py:55 barcodes/api.py:156
msgid "Must provide barcode_data parameter"
msgstr ""
-#: barcodes/api.py:128
+#: barcodes/api.py:132
msgid "No match found for barcode data"
msgstr ""
-#: barcodes/api.py:130
+#: barcodes/api.py:134
msgid "Match found for barcode data"
msgstr ""
-#: barcodes/api.py:155
+#: barcodes/api.py:159
msgid "Must provide stockitem parameter"
msgstr ""
-#: barcodes/api.py:162
+#: barcodes/api.py:166
msgid "No matching stock item found"
msgstr ""
-#: barcodes/api.py:193
+#: barcodes/api.py:197
msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:197
+#: barcodes/api.py:201
msgid "Barcode already matches Stock Location"
msgstr ""
-#: barcodes/api.py:201
+#: barcodes/api.py:205
msgid "Barcode already matches Part"
msgstr ""
-#: barcodes/api.py:207 barcodes/api.py:219
+#: barcodes/api.py:211 barcodes/api.py:223
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: barcodes/api.py:225
+#: barcodes/api.py:229
msgid "Barcode associated with Stock Item"
msgstr ""
@@ -641,18 +641,18 @@ msgstr ""
msgid "Confirm build cancellation"
msgstr ""
-#: build/models.py:133
+#: build/models.py:135
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:139 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:676 templates/js/translated/stock.js:2422
+#: templates/js/translated/build.js:677 templates/js/translated/stock.js:2378
msgid "Build Order"
msgstr ""
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:140 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:92
#: order/templates/order/so_sidebar.html:13
@@ -662,41 +662,41 @@ msgstr ""
msgid "Build Orders"
msgstr ""
-#: build/models.py:198
+#: build/models.py:200
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:213 order/models.py:563
-#: order/models.py:843 part/models.py:2716
+#: build/models.py:201 order/models.py:213 order/models.py:563
+#: order/models.py:843 part/models.py:2731
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:772 templates/js/translated/build.js:1401
-#: templates/js/translated/order.js:1136 templates/js/translated/order.js:2261
+#: templates/js/translated/bom.js:770 templates/js/translated/build.js:1402
+#: templates/js/translated/order.js:1223 templates/js/translated/order.js:2349
msgid "Reference"
msgstr ""
-#: build/models.py:210
+#: build/models.py:212
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:219 build/templates/build/build_base.html:169
+#: build/models.py:221 build/templates/build/build_base.html:169
#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:222
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:225 build/templates/build/build_base.html:77
+#: build/models.py:227 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
#: order/models.py:912 order/models.py:986
#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359
-#: part/models.py:2249 part/models.py:2265 part/models.py:2284
-#: part/models.py:2301 part/models.py:2403 part/models.py:2525
-#: part/models.py:2615 part/models.py:2691 part/models.py:2998
-#: part/serializers.py:666 part/templates/part/part_app_base.html:8
+#: part/models.py:2263 part/models.py:2279 part/models.py:2298
+#: part/models.py:2315 part/models.py:2417 part/models.py:2539
+#: part/models.py:2629 part/models.py:2706 part/models.py:3013
+#: part/serializers.py:669 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: part/templates/part/upload_bom.html:52
@@ -707,231 +707,231 @@ msgstr ""
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551
-#: templates/js/translated/bom.js:730 templates/js/translated/build.js:902
-#: templates/js/translated/build.js:1270 templates/js/translated/build.js:1655
-#: templates/js/translated/build.js:1925 templates/js/translated/company.js:492
+#: templates/js/translated/bom.js:728 templates/js/translated/build.js:903
+#: templates/js/translated/build.js:1271 templates/js/translated/build.js:1666
+#: templates/js/translated/build.js:1978 templates/js/translated/company.js:492
#: templates/js/translated/company.js:749 templates/js/translated/order.js:84
-#: templates/js/translated/order.js:651 templates/js/translated/order.js:1090
-#: templates/js/translated/order.js:1693 templates/js/translated/order.js:2050
-#: templates/js/translated/order.js:2245 templates/js/translated/part.js:1006
-#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1254
-#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1657
-#: templates/js/translated/stock.js:2892 templates/js/translated/stock.js:2991
+#: templates/js/translated/order.js:711 templates/js/translated/order.js:1177
+#: templates/js/translated/order.js:1781 templates/js/translated/order.js:2138
+#: templates/js/translated/order.js:2333 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1088 templates/js/translated/part.js:1255
+#: templates/js/translated/stock.js:518 templates/js/translated/stock.js:683
+#: templates/js/translated/stock.js:890 templates/js/translated/stock.js:1613
+#: templates/js/translated/stock.js:2848 templates/js/translated/stock.js:2947
msgid "Part"
msgstr "パーツ"
-#: build/models.py:233
+#: build/models.py:235
msgid "Select part to build"
msgstr ""
-#: build/models.py:238
+#: build/models.py:240
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:242
+#: build/models.py:244
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 templates/js/translated/build.js:1643
-#: templates/js/translated/order.js:1681
+#: build/models.py:249 build/serializers.py:729
+#: templates/js/translated/build.js:1654 templates/js/translated/order.js:1769
msgid "Source Location"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:256
+#: build/models.py:258
msgid "Destination Location"
msgstr ""
-#: build/models.py:260
+#: build/models.py:262
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:264
+#: build/models.py:266
msgid "Build Quantity"
msgstr ""
-#: build/models.py:267
+#: build/models.py:269
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:271
+#: build/models.py:273
msgid "Completed items"
msgstr ""
-#: build/models.py:273
+#: build/models.py:275
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:277 part/templates/part/part_base.html:234
+#: build/models.py:279 part/templates/part/part_base.html:234
msgid "Build Status"
msgstr ""
-#: build/models.py:281
+#: build/models.py:283
msgid "Build status code"
msgstr ""
-#: build/models.py:285 build/serializers.py:218 order/serializers.py:272
-#: stock/models.py:570 templates/js/translated/order.js:513
+#: build/models.py:287 build/serializers.py:218 order/serializers.py:272
+#: stock/models.py:622 templates/js/translated/order.js:573
msgid "Batch Code"
msgstr ""
-#: build/models.py:289 build/serializers.py:219
+#: build/models.py:291 build/serializers.py:219
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:129 part/models.py:999
-#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1379
+#: build/models.py:294 order/models.py:129 part/models.py:999
+#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1467
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:585
+#: build/models.py:298 order/models.py:585
msgid "Target completion date"
msgstr ""
-#: build/models.py:297
+#: build/models.py:299
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:255
-#: templates/js/translated/build.js:2002
+#: build/models.py:302 order/models.py:255
+#: templates/js/translated/build.js:2055
msgid "Completion Date"
msgstr ""
-#: build/models.py:306
+#: build/models.py:308
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:1970
+#: build/models.py:316 templates/js/translated/build.js:2023
msgid "Issued by"
msgstr ""
-#: build/models.py:315
+#: build/models.py:317
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:323 build/templates/build/build_base.html:190
+#: build/models.py:325 build/templates/build/build_base.html:190
#: build/templates/build/detail.html:116 order/models.py:143
#: order/templates/order/order_base.html:170
#: order/templates/order/sales_order_base.html:182 part/models.py:1003
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1982 templates/js/translated/order.js:945
+#: templates/js/translated/build.js:2035 templates/js/translated/order.js:1005
msgid "Responsible"
msgstr ""
-#: build/models.py:324
+#: build/models.py:326
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:329 build/templates/build/detail.html:102
+#: build/models.py:331 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:564
+#: part/templates/part/part_base.html:354 stock/models.py:616
#: stock/templates/stock/item_base.html:352
msgid "External Link"
msgstr ""
-#: build/models.py:334 build/serializers.py:381
+#: build/models.py:336 build/serializers.py:381
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
#: order/models.py:147 order/models.py:845 order/models.py:1107
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/models.py:988
-#: part/templates/part/detail.html:146 part/templates/part/part_sidebar.html:57
+#: part/templates/part/detail.html:141 part/templates/part/part_sidebar.html:57
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:137 stock/forms.py:171 stock/models.py:636
-#: stock/models.py:1971 stock/models.py:2077 stock/serializers.py:332
+#: stock/forms.py:137 stock/forms.py:171 stock/models.py:688
+#: stock/models.py:2023 stock/models.py:2129 stock/serializers.py:332
#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:936
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1257
-#: templates/js/translated/order.js:1562 templates/js/translated/order.js:2419
-#: templates/js/translated/stock.js:1344 templates/js/translated/stock.js:1935
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934
+#: templates/js/translated/company.js:845 templates/js/translated/order.js:1344
+#: templates/js/translated/order.js:1650 templates/js/translated/order.js:2507
+#: templates/js/translated/stock.js:1300 templates/js/translated/stock.js:1891
msgid "Notes"
msgstr ""
-#: build/models.py:335
+#: build/models.py:337
msgid "Extra build notes"
msgstr ""
-#: build/models.py:748
+#: build/models.py:750
msgid "No build output specified"
msgstr ""
-#: build/models.py:751
+#: build/models.py:753
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:754
+#: build/models.py:756
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1060
+#: build/models.py:1162
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1069
+#: build/models.py:1171
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1079
+#: build/models.py:1181
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1085 order/models.py:1225
+#: build/models.py:1187 order/models.py:1225
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1091
+#: build/models.py:1193
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1148
+#: build/models.py:1250
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1217 stock/templates/stock/item_base.html:324
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898
+#: build/models.py:1319 stock/templates/stock/item_base.html:324
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1951
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1218
+#: build/models.py:1320
msgid "Build to allocate parts"
msgstr "パーツを割り当てるためにビルドする"
-#: build/models.py:1234 build/serializers.py:576 order/serializers.py:783
+#: build/models.py:1336 build/serializers.py:576 order/serializers.py:783
#: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635
#: stock/serializers.py:753 stock/templates/stock/item_base.html:9
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:346
-#: templates/js/translated/build.js:687 templates/js/translated/build.js:692
-#: templates/js/translated/build.js:1657 templates/js/translated/build.js:2050
-#: templates/js/translated/order.js:85 templates/js/translated/order.js:1694
-#: templates/js/translated/order.js:1949 templates/js/translated/order.js:1954
-#: templates/js/translated/order.js:2057 templates/js/translated/order.js:2147
-#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728
-#: templates/js/translated/stock.js:2753
+#: templates/js/translated/build.js:688 templates/js/translated/build.js:693
+#: templates/js/translated/build.js:1668 templates/js/translated/build.js:2103
+#: templates/js/translated/order.js:85 templates/js/translated/order.js:1782
+#: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:2235
+#: templates/js/translated/stock.js:519 templates/js/translated/stock.js:684
+#: templates/js/translated/stock.js:2709
msgid "Stock Item"
msgstr ""
-#: build/models.py:1235
+#: build/models.py:1337
msgid "Source stock item"
msgstr ""
-#: build/models.py:1247 build/serializers.py:188
+#: build/models.py:1349 build/serializers.py:188
#: build/templates/build/build_base.html:82
#: build/templates/build/detail.html:35 common/models.py:1317
#: company/forms.py:42 company/templates/company/supplier_part.html:251
#: order/models.py:836 order/models.py:1265 order/serializers.py:903
#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144
-#: part/forms.py:160 part/forms.py:176 part/models.py:2707
-#: part/templates/part/detail.html:1008 part/templates/part/detail.html:1094
+#: part/forms.py:160 part/forms.py:176 part/models.py:2722
+#: part/templates/part/detail.html:994 part/templates/part/detail.html:1080
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_build_order_base.html:114
@@ -943,32 +943,32 @@ msgstr ""
#: stock/templates/stock/item_base.html:176
#: stock/templates/stock/item_base.html:241
#: stock/templates/stock/item_base.html:249
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:780
-#: templates/js/translated/build.js:375 templates/js/translated/build.js:523
-#: templates/js/translated/build.js:714 templates/js/translated/build.js:911
-#: templates/js/translated/build.js:921 templates/js/translated/build.js:1297
-#: templates/js/translated/build.js:1658
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778
+#: templates/js/translated/build.js:376 templates/js/translated/build.js:524
+#: templates/js/translated/build.js:715 templates/js/translated/build.js:912
+#: templates/js/translated/build.js:922 templates/js/translated/build.js:1298
+#: templates/js/translated/build.js:1669
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:101 templates/js/translated/order.js:1142
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:1976
-#: templates/js/translated/order.js:2064 templates/js/translated/order.js:2153
-#: templates/js/translated/order.js:2267 templates/js/translated/part.js:906
-#: templates/js/translated/part.js:1884 templates/js/translated/part.js:2007
-#: templates/js/translated/part.js:2085 templates/js/translated/stock.js:391
-#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758
-#: templates/js/translated/stock.js:2802 templates/js/translated/stock.js:2904
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:1229
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:2064
+#: templates/js/translated/order.js:2152 templates/js/translated/order.js:2241
+#: templates/js/translated/order.js:2355 templates/js/translated/part.js:907
+#: templates/js/translated/part.js:1885 templates/js/translated/part.js:2008
+#: templates/js/translated/part.js:2086 templates/js/translated/stock.js:390
+#: templates/js/translated/stock.js:544 templates/js/translated/stock.js:714
+#: templates/js/translated/stock.js:2758 templates/js/translated/stock.js:2860
msgid "Quantity"
msgstr ""
-#: build/models.py:1248
+#: build/models.py:1350
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1256
+#: build/models.py:1358
msgid "Install into"
msgstr ""
-#: build/models.py:1257
+#: build/models.py:1359
msgid "Destination stock item"
msgstr ""
@@ -997,8 +997,8 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:201 build/serializers.py:596 order/models.py:280
-#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:826
-#: stock/models.py:404 stock/models.py:1180 stock/serializers.py:305
+#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:836
+#: stock/models.py:456 stock/models.py:1232 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1012,8 +1012,8 @@ msgstr ""
#: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907
#: stock/forms.py:78 stock/serializers.py:314
-#: templates/js/translated/order.js:524 templates/js/translated/stock.js:238
-#: templates/js/translated/stock.js:392
+#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237
+#: templates/js/translated/stock.js:391
msgid "Serial Numbers"
msgstr ""
@@ -1029,7 +1029,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:275 stock/api.py:549
+#: build/serializers.py:275 stock/api.py:551
msgid "The following serial numbers already exist"
msgstr ""
@@ -1041,13 +1041,13 @@ msgstr ""
#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788
#: stock/serializers.py:1029 stock/templates/stock/item_base.html:292
#: templates/js/translated/barcode.js:384
-#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:699
-#: templates/js/translated/build.js:1309 templates/js/translated/order.js:551
-#: templates/js/translated/order.js:1961 templates/js/translated/order.js:2072
-#: templates/js/translated/order.js:2080 templates/js/translated/order.js:2161
-#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564
-#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936
-#: templates/js/translated/stock.js:1807 templates/js/translated/stock.js:2694
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700
+#: templates/js/translated/build.js:1310 templates/js/translated/order.js:611
+#: templates/js/translated/order.js:2049 templates/js/translated/order.js:2160
+#: templates/js/translated/order.js:2168 templates/js/translated/order.js:2249
+#: templates/js/translated/part.js:179 templates/js/translated/stock.js:520
+#: templates/js/translated/stock.js:685 templates/js/translated/stock.js:892
+#: templates/js/translated/stock.js:1763 templates/js/translated/stock.js:2650
msgid "Location"
msgstr ""
@@ -1058,10 +1058,10 @@ msgstr ""
#: build/serializers.py:377 build/templates/build/build_base.html:142
#: build/templates/build/detail.html:63 order/models.py:579
#: order/serializers.py:290 stock/templates/stock/item_base.html:182
-#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1954
-#: templates/js/translated/order.js:656 templates/js/translated/order.js:915
-#: templates/js/translated/order.js:1371 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2771 templates/js/translated/stock.js:2920
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2007
+#: templates/js/translated/order.js:716 templates/js/translated/order.js:975
+#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2727 templates/js/translated/stock.js:2876
msgid "Status"
msgstr ""
@@ -1073,7 +1073,7 @@ msgstr ""
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:445 templates/js/translated/build.js:150
+#: build/serializers.py:445 templates/js/translated/build.js:151
msgid "Required stock has not been fully allocated"
msgstr ""
@@ -1085,7 +1085,7 @@ msgstr ""
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:461 templates/js/translated/build.js:154
+#: build/serializers.py:461 templates/js/translated/build.js:155
msgid "Required build quantity has not been completed"
msgstr ""
@@ -1097,8 +1097,8 @@ msgstr ""
msgid "No build outputs have been created for this build order"
msgstr ""
-#: build/serializers.py:501 build/serializers.py:550 part/models.py:2831
-#: part/models.py:2990
+#: build/serializers.py:501 build/serializers.py:550 part/models.py:2846
+#: part/models.py:3005
msgid "BOM Item"
msgstr ""
@@ -1135,6 +1135,26 @@ msgstr ""
msgid "Allocation items must be provided"
msgstr ""
+#: build/serializers.py:730
+msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
+msgstr ""
+
+#: build/serializers.py:735
+msgid "Interchangeable Stock"
+msgstr ""
+
+#: build/serializers.py:736
+msgid "Stock items in multiple locations can be used interchangeably"
+msgstr ""
+
+#: build/serializers.py:741
+msgid "Substitute Stock"
+msgstr ""
+
+#: build/serializers.py:742
+msgid "Allow allocation of substitute parts"
+msgstr ""
+
#: build/tasks.py:98
msgid "Stock required for build order"
msgstr ""
@@ -1206,9 +1226,9 @@ msgstr ""
#: order/templates/order/order_base.html:156
#: order/templates/order/sales_order_base.html:163
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1994 templates/js/translated/order.js:932
-#: templates/js/translated/order.js:1204 templates/js/translated/order.js:1387
-#: templates/js/translated/order.js:2330 templates/js/translated/part.js:910
+#: templates/js/translated/build.js:2047 templates/js/translated/order.js:992
+#: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475
+#: templates/js/translated/order.js:2418 templates/js/translated/part.js:911
msgid "Target Date"
msgstr ""
@@ -1230,7 +1250,7 @@ msgstr ""
#: build/templates/build/build_base.html:163
#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
#: order/templates/order/sales_order_base.html:170
-#: templates/js/translated/build.js:1940
+#: templates/js/translated/build.js:1993
#: templates/js/translated/table_filters.js:365
msgid "Completed"
msgstr ""
@@ -1242,7 +1262,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:286
-#: templates/js/translated/order.js:1326 templates/js/translated/stock.js:2436
+#: templates/js/translated/order.js:1414 templates/js/translated/stock.js:2392
msgid "Sales Order"
msgstr ""
@@ -1277,7 +1297,7 @@ msgid "Stock can be taken from any available location."
msgstr ""
#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133
-#: templates/js/translated/order.js:657 templates/js/translated/order.js:1246
+#: templates/js/translated/order.js:717 templates/js/translated/order.js:1333
msgid "Destination"
msgstr ""
@@ -1285,13 +1305,13 @@ msgstr ""
msgid "Destination location not specified"
msgstr ""
-#: build/templates/build/detail.html:74 templates/js/translated/build.js:929
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:930
msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:310
-#: templates/js/translated/stock.js:1796 templates/js/translated/stock.js:2927
+#: templates/js/translated/stock.js:1752 templates/js/translated/stock.js:2883
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:238
msgid "Batch"
@@ -1300,7 +1320,7 @@ msgstr ""
#: build/templates/build/detail.html:127
#: order/templates/order/order_base.html:143
#: order/templates/order/sales_order_base.html:157
-#: templates/js/translated/build.js:1962
+#: templates/js/translated/build.js:2015
msgid "Created"
msgstr ""
@@ -1320,7 +1340,7 @@ msgstr ""
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:177 templates/js/translated/build.js:1484
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1485
msgid "Unallocate stock"
msgstr ""
@@ -1329,111 +1349,119 @@ msgid "Unallocate Stock"
msgstr ""
#: build/templates/build/detail.html:180
-msgid "Allocate stock to build"
+msgid "Automatically allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
+#: build/templates/build/detail.html:181
+msgid "Auto Allocate"
+msgstr ""
+
+#: build/templates/build/detail.html:183
+msgid "Manually allocate stock to build"
+msgstr ""
+
+#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8
msgid "Allocate Stock"
msgstr ""
-#: build/templates/build/detail.html:184
+#: build/templates/build/detail.html:187
msgid "Order required parts"
msgstr "注文必須パーツ"
-#: build/templates/build/detail.html:185
+#: build/templates/build/detail.html:188
#: company/templates/company/detail.html:38
#: company/templates/company/detail.html:85 order/views.py:463
-#: part/templates/part/category.html:177
+#: part/templates/part/category.html:174
msgid "Order Parts"
msgstr "パーツの注文"
-#: build/templates/build/detail.html:197
+#: build/templates/build/detail.html:200
msgid "Untracked stock has been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:201
+#: build/templates/build/detail.html:204
msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:208
+#: build/templates/build/detail.html:211
msgid "Allocate selected items"
msgstr ""
-#: build/templates/build/detail.html:218
+#: build/templates/build/detail.html:221
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:230
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:231
+#: build/templates/build/detail.html:234
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:232
+#: build/templates/build/detail.html:235
msgid "New Build Output"
msgstr ""
-#: build/templates/build/detail.html:246
+#: build/templates/build/detail.html:249
msgid "Output Actions"
msgstr ""
-#: build/templates/build/detail.html:250
+#: build/templates/build/detail.html:253
msgid "Complete selected build outputs"
msgstr ""
-#: build/templates/build/detail.html:251
+#: build/templates/build/detail.html:254
msgid "Complete outputs"
msgstr ""
-#: build/templates/build/detail.html:253
+#: build/templates/build/detail.html:256
msgid "Delete selected build outputs"
msgstr ""
-#: build/templates/build/detail.html:254
+#: build/templates/build/detail.html:257
msgid "Delete outputs"
msgstr ""
-#: build/templates/build/detail.html:270
+#: build/templates/build/detail.html:273
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19
+#: build/templates/build/detail.html:285 build/templates/build/sidebar.html:19
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:107
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:222
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217
#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:105
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:298
+#: build/templates/build/detail.html:301
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:302 build/templates/build/detail.html:478
-#: company/templates/company/detail.html:188
-#: company/templates/company/detail.html:215
+#: build/templates/build/detail.html:305 build/templates/build/detail.html:481
+#: company/templates/company/detail.html:190
+#: company/templates/company/detail.html:217
#: order/templates/order/purchase_order_detail.html:80
#: order/templates/order/purchase_order_detail.html:108
#: order/templates/order/sales_order_detail.html:127
#: order/templates/order/sales_order_detail.html:186
-#: part/templates/part/detail.html:150 stock/templates/stock/item.html:125
+#: part/templates/part/detail.html:145 stock/templates/stock/item.html:125
#: stock/templates/stock/item.html:223
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:519
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:520
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:329
+#: build/templates/build/index.html:18 part/templates/part/detail.html:322
msgid "New Build Order"
msgstr ""
@@ -1658,7 +1686,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:732 part/models.py:2527 report/models.py:187
+#: common/models.py:732 part/models.py:2541 report/models.py:187
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:417
msgid "Template"
@@ -1668,7 +1696,7 @@ msgstr "テンプレート"
msgid "Parts are templates by default"
msgstr "パーツはデフォルトのテンプレートです"
-#: common/models.py:739 part/models.py:951 templates/js/translated/bom.js:1300
+#: common/models.py:739 part/models.py:951 templates/js/translated/bom.js:1305
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:429
msgid "Assembly"
@@ -2243,7 +2271,7 @@ msgstr ""
#: common/models.py:1325 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:937 templates/js/translated/part.js:1889
+#: templates/js/translated/part.js:938 templates/js/translated/part.js:1890
msgid "Price"
msgstr ""
@@ -2337,14 +2365,14 @@ msgstr ""
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
-#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:210
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208
#: templates/patterns/wizard/upload.html:35
msgid "Upload File"
msgstr ""
#: common/views.py:94 order/views.py:244
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:211
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:209
#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
@@ -2472,7 +2500,7 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:508
+#: company/models.py:320 company/models.py:535 stock/models.py:560
#: stock/templates/stock/item_base.html:137 templates/js/translated/bom.js:541
msgid "Base Part"
msgstr ""
@@ -2499,8 +2527,8 @@ msgstr ""
#: company/models.py:342 company/templates/company/manufacturer_part.html:96
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1124
-#: templates/js/translated/part.js:245 templates/js/translated/part.js:895
+#: templates/js/translated/company.js:818 templates/js/translated/order.js:1211
+#: templates/js/translated/part.js:245 templates/js/translated/part.js:896
msgid "MPN"
msgstr ""
@@ -2529,8 +2557,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2064 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1331
+#: stock/models.py:2116 templates/js/translated/company.js:647
+#: templates/js/translated/part.js:716 templates/js/translated/stock.js:1287
msgid "Value"
msgstr ""
@@ -2538,10 +2566,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:945 part/models.py:2495
+#: company/models.py:429 part/models.py:945 part/models.py:2509
#: part/templates/part/part_base.html:288
#: templates/InvenTree/settings/settings.html:324
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:721
+#: templates/js/translated/company.js:653 templates/js/translated/part.js:722
msgid "Units"
msgstr ""
@@ -2559,8 +2587,8 @@ msgstr ""
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237
#: part/bom.py:265 stock/templates/stock/item_base.html:376
#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:898
-#: templates/js/translated/part.js:215 templates/js/translated/part.js:863
+#: templates/js/translated/company.js:774 templates/js/translated/order.js:958
+#: templates/js/translated/part.js:215 templates/js/translated/part.js:864
#: templates/js/translated/table_filters.js:388
msgid "Supplier"
msgstr ""
@@ -2570,8 +2598,8 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1111
-#: templates/js/translated/part.js:226 templates/js/translated/part.js:881
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198
+#: templates/js/translated/part.js:226 templates/js/translated/part.js:882
msgid "SKU"
msgstr ""
@@ -2592,7 +2620,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:119
-#: part/models.py:2719 part/templates/part/upload_bom.html:59
+#: part/models.py:2734 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409
msgid "Note"
@@ -2607,8 +2635,8 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:532 stock/templates/stock/item_base.html:317
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1931
+#: stock/models.py:584 stock/templates/stock/item_base.html:317
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1887
msgid "Packaging"
msgstr ""
@@ -2676,11 +2704,11 @@ msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:83 order/models.py:574
-#: order/templates/order/sales_order_base.html:115 stock/models.py:551
-#: stock/models.py:552 stock/serializers.py:683
+#: order/templates/order/sales_order_base.html:115 stock/models.py:603
+#: stock/models.py:604 stock/serializers.py:683
#: stock/templates/stock/item_base.html:269
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1348
-#: templates/js/translated/stock.js:2735
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1436
+#: templates/js/translated/stock.js:2691
#: templates/js/translated/table_filters.js:392
msgid "Customer"
msgstr ""
@@ -2711,7 +2739,7 @@ msgstr "新しいサプライヤー・パーツを作成"
#: company/templates/company/detail.html:20
#: company/templates/company/manufacturer_part.html:118
-#: part/templates/part/detail.html:367
+#: part/templates/part/detail.html:360
msgid "New Supplier Part"
msgstr "新しいサプライヤー・パーツ"
@@ -2719,14 +2747,14 @@ msgstr "新しいサプライヤー・パーツ"
#: company/templates/company/detail.html:79
#: company/templates/company/manufacturer_part.html:127
#: company/templates/company/manufacturer_part.html:156
-#: part/templates/part/category.html:171 part/templates/part/detail.html:376
-#: part/templates/part/detail.html:405
+#: part/templates/part/category.html:168 part/templates/part/detail.html:369
+#: part/templates/part/detail.html:398
msgid "Options"
msgstr ""
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177
+#: part/templates/part/category.html:174
msgid "Order parts"
msgstr "パーツの注文"
@@ -2748,7 +2776,7 @@ msgstr "メーカー・パーツ"
msgid "Create new manufacturer part"
msgstr "新しいメーカー・パーツを作成"
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:395
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:388
msgid "New Manufacturer Part"
msgstr "新しいメーカ―・パーツ"
@@ -2762,7 +2790,7 @@ msgstr ""
#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:40
+#: part/templates/part/detail.html:80 part/templates/part/part_sidebar.html:40
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
@@ -2784,7 +2812,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:44
+#: part/templates/part/detail.html:103 part/templates/part/part_sidebar.html:44
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
@@ -2802,23 +2830,23 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/detail.html:168
-#: templates/js/translated/build.js:1281
+#: templates/js/translated/build.js:1282
msgid "Assigned Stock"
msgstr ""
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:186
msgid "Company Notes"
msgstr ""
-#: company/templates/company/detail.html:384
+#: company/templates/company/detail.html:380
#: company/templates/company/manufacturer_part.html:215
-#: part/templates/part/detail.html:449
+#: part/templates/part/detail.html:442
msgid "Delete Supplier Parts?"
msgstr ""
-#: company/templates/company/detail.html:385
+#: company/templates/company/detail.html:381
#: company/templates/company/manufacturer_part.html:216
-#: part/templates/part/detail.html:450
+#: part/templates/part/detail.html:443
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2835,7 +2863,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:34
#: company/templates/company/supplier_part.html:159
-#: part/templates/part/detail.html:88 part/templates/part/part_base.html:76
+#: part/templates/part/detail.html:83 part/templates/part/part_base.html:76
msgid "Order part"
msgstr "パーツの注文"
@@ -2862,14 +2890,14 @@ msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
-#: part/templates/part/detail.html:378
+#: part/templates/part/detail.html:371
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
#: company/templates/company/manufacturer_part.html:158
#: company/templates/company/manufacturer_part.html:254
-#: part/templates/part/detail.html:378 part/templates/part/detail.html:407
+#: part/templates/part/detail.html:371 part/templates/part/detail.html:400
#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31
#: users/models.py:217
msgid "Delete"
@@ -2878,12 +2906,12 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:143
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:17
-#: part/templates/part/detail.html:196 part/templates/part/part_sidebar.html:9
+#: part/templates/part/detail.html:191 part/templates/part/part_sidebar.html:9
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:147
-#: part/templates/part/detail.html:201
+#: part/templates/part/detail.html:196
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:66
msgid "New Parameter"
@@ -2894,7 +2922,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:191
-#: part/templates/part/detail.html:908
+#: part/templates/part/detail.html:894
msgid "Add Parameter"
msgstr ""
@@ -2923,9 +2951,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:516
+#: company/templates/company/supplier_part.html:24 stock/models.py:568
#: stock/templates/stock/item_base.html:381
-#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1888
+#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1844
msgid "Supplier Part"
msgstr ""
@@ -2951,7 +2979,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:166
-#: templates/js/translated/stock.js:368
+#: templates/js/translated/stock.js:367
msgid "New Stock Item"
msgstr ""
@@ -2961,7 +2989,7 @@ msgid "Supplier Part Orders"
msgstr ""
#: company/templates/company/supplier_part.html:160
-#: part/templates/part/detail.html:89
+#: part/templates/part/detail.html:84
msgid "Order Part"
msgstr ""
@@ -2972,7 +3000,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1319
+#: part/templates/part/prices.html:271 part/views.py:1254
msgid "Add Price Break"
msgstr ""
@@ -2980,11 +3008,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1381
+#: company/templates/company/supplier_part.html:224 part/views.py:1316
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1367
+#: company/templates/company/supplier_part.html:238 part/views.py:1302
msgid "Edit Price Break"
msgstr ""
@@ -3002,10 +3030,10 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:150
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/bom.js:553 templates/js/translated/part.js:495
-#: templates/js/translated/part.js:630 templates/js/translated/part.js:1147
-#: templates/js/translated/part.js:1308 templates/js/translated/stock.js:935
-#: templates/js/translated/stock.js:1711 templates/navbar.html:28
+#: templates/js/translated/bom.js:553 templates/js/translated/part.js:496
+#: templates/js/translated/part.js:631 templates/js/translated/part.js:1148
+#: templates/js/translated/part.js:1309 templates/js/translated/stock.js:891
+#: templates/js/translated/stock.js:1667 templates/navbar.html:28
msgid "Stock"
msgstr ""
@@ -3028,7 +3056,7 @@ msgstr ""
#: stock/templates/stock/location.html:150
#: stock/templates/stock/location.html:162
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2641
+#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2597
#: templates/stats.html:105 templates/stats.html:114 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -3058,20 +3086,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:591
+#: company/views.py:129 part/views.py:589
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:623
+#: company/views.py:158 part/views.py:621
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:630
+#: company/views.py:165 part/views.py:628
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:639
+#: company/views.py:174 part/views.py:637
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3190,7 +3218,7 @@ msgid "Company from which the items are being ordered"
msgstr ""
#: order/models.py:231 order/templates/order/order_base.html:118
-#: templates/js/translated/order.js:907
+#: templates/js/translated/order.js:967
msgid "Supplier Reference"
msgstr ""
@@ -3247,7 +3275,7 @@ msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
#: order/models.py:589 order/models.py:1084
-#: templates/js/translated/order.js:1395 templates/js/translated/order.js:1546
+#: templates/js/translated/order.js:1483 templates/js/translated/order.js:1634
msgid "Shipment Date"
msgstr ""
@@ -3292,7 +3320,7 @@ msgid "Supplier part must match supplier"
msgstr ""
#: order/models.py:891 order/models.py:982 order/models.py:1078
-#: templates/js/translated/order.js:1937 templates/js/translated/stock.js:2403
+#: templates/js/translated/order.js:2025 templates/js/translated/stock.js:2359
msgid "Order"
msgstr ""
@@ -3300,8 +3328,8 @@ msgstr ""
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:331
-#: templates/js/translated/order.js:876 templates/js/translated/part.js:838
-#: templates/js/translated/stock.js:1865 templates/js/translated/stock.js:2716
+#: templates/js/translated/order.js:936 templates/js/translated/part.js:839
+#: templates/js/translated/stock.js:1821 templates/js/translated/stock.js:2672
msgid "Purchase Order"
msgstr ""
@@ -3310,8 +3338,8 @@ msgid "Supplier part"
msgstr ""
#: order/models.py:920 order/templates/order/order_base.html:163
-#: templates/js/translated/order.js:654 templates/js/translated/order.js:1226
-#: templates/js/translated/part.js:932 templates/js/translated/part.js:959
+#: templates/js/translated/order.js:714 templates/js/translated/order.js:1313
+#: templates/js/translated/part.js:933 templates/js/translated/part.js:960
#: templates/js/translated/table_filters.js:312
msgid "Received"
msgstr ""
@@ -3320,9 +3348,9 @@ msgstr ""
msgid "Number of items received"
msgstr ""
-#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:645
+#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:697
#: stock/serializers.py:170 stock/templates/stock/item_base.html:338
-#: templates/js/translated/stock.js:1919
+#: templates/js/translated/stock.js:1875
msgid "Purchase Price"
msgstr ""
@@ -3456,11 +3484,11 @@ msgstr ""
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:273 templates/js/translated/order.js:514
+#: order/serializers.py:273 templates/js/translated/order.js:574
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:281 templates/js/translated/order.js:525
+#: order/serializers.py:281 templates/js/translated/order.js:585
msgid "Enter serial numbers for incoming stock items"
msgstr ""
@@ -3578,7 +3606,7 @@ msgstr ""
#: order/templates/order/order_base.html:94
#: order/templates/order/sales_order_base.html:89
-#: templates/js/translated/stock.js:2459
+#: templates/js/translated/stock.js:2415
msgid "Order Status"
msgstr ""
@@ -3650,10 +3678,10 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/bom.js:76 templates/js/translated/build.js:380
-#: templates/js/translated/build.js:528 templates/js/translated/build.js:1547
-#: templates/js/translated/order.js:602 templates/js/translated/order.js:1605
-#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769
+#: templates/js/translated/bom.js:76 templates/js/translated/build.js:381
+#: templates/js/translated/build.js:529 templates/js/translated/build.js:1558
+#: templates/js/translated/order.js:662 templates/js/translated/order.js:1693
+#: templates/js/translated/stock.js:557 templates/js/translated/stock.js:725
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr ""
@@ -3717,8 +3745,8 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:940 templates/js/translated/order.js:1403
-#: templates/js/translated/order.js:1533
+#: templates/js/translated/order.js:1000 templates/js/translated/order.js:1491
+#: templates/js/translated/order.js:1621
msgid "Items"
msgstr ""
@@ -3752,9 +3780,9 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:27
-#: order/templates/order/purchase_order_detail.html:182
+#: order/templates/order/purchase_order_detail.html:166
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:245
+#: order/templates/order/sales_order_detail.html:233
msgid "Add Line Item"
msgstr ""
@@ -3794,7 +3822,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:122
-#: templates/js/translated/order.js:1361
+#: templates/js/translated/order.js:1449
msgid "Customer Reference"
msgstr ""
@@ -3827,7 +3855,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:48
-#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1465
+#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1466
msgid "Actions"
msgstr ""
@@ -3902,31 +3930,31 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:499
+#: part/api.py:502
msgid "Valid"
msgstr ""
-#: part/api.py:500
+#: part/api.py:503
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:505
+#: part/api.py:508
msgid "This option must be selected"
msgstr ""
-#: part/api.py:847
+#: part/api.py:866
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:851
+#: part/api.py:870
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:866
+#: part/api.py:885
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:897 part/api.py:901 part/api.py:916 part/api.py:920
+#: part/api.py:916 part/api.py:920 part/api.py:935 part/api.py:939
msgid "This field is required"
msgstr ""
@@ -3944,7 +3972,7 @@ msgid "Available Stock"
msgstr ""
#: part/bom.py:128 part/templates/part/part_base.html:203
-#: templates/js/translated/part.js:1323
+#: templates/js/translated/part.js:1324
msgid "On Order"
msgstr ""
@@ -3976,7 +4004,7 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:97 part/models.py:2571 part/templates/part/category.html:15
+#: part/models.py:97 part/models.py:2585 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -3993,7 +4021,7 @@ msgstr ""
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:37
-#: templates/js/translated/part.js:1685 templates/navbar.html:21
+#: templates/js/translated/part.js:1686 templates/navbar.html:21
#: templates/stats.html:92 templates/stats.html:101 users/models.py:41
msgid "Parts"
msgstr "パーツ"
@@ -4023,7 +4051,7 @@ msgstr ""
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:803 part/models.py:2624
+#: part/models.py:803 part/models.py:2638
msgid "Part name"
msgstr ""
@@ -4056,11 +4084,11 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:841 part/models.py:2321 part/models.py:2570
+#: part/models.py:841 part/models.py:2335 part/models.py:2584
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:223
-#: templates/js/translated/part.js:1290
+#: templates/js/translated/part.js:1291
msgid "Category"
msgstr ""
@@ -4069,8 +4097,8 @@ msgid "Part category"
msgstr ""
#: part/models.py:847 part/templates/part/part_base.html:274
-#: templates/js/translated/part.js:618 templates/js/translated/part.js:1243
-#: templates/js/translated/stock.js:1683
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:1244
+#: templates/js/translated/stock.js:1639
msgid "IPN"
msgstr ""
@@ -4083,7 +4111,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:855 part/templates/part/part_base.html:281
-#: report/models.py:200 templates/js/translated/part.js:622
+#: report/models.py:200 templates/js/translated/part.js:623
msgid "Revision"
msgstr ""
@@ -4175,301 +4203,309 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2371
+#: part/models.py:2385
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2388
+#: part/models.py:2402
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2408 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:1311
+#: part/models.py:2422 templates/js/translated/part.js:1737
+#: templates/js/translated/stock.js:1267
msgid "Test Name"
msgstr ""
-#: part/models.py:2409
+#: part/models.py:2423
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2414
+#: part/models.py:2428
msgid "Test Description"
msgstr ""
-#: part/models.py:2415
+#: part/models.py:2429
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2420 templates/js/translated/part.js:1745
+#: part/models.py:2434 templates/js/translated/part.js:1746
#: templates/js/translated/table_filters.js:276
msgid "Required"
msgstr ""
-#: part/models.py:2421
+#: part/models.py:2435
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2426 templates/js/translated/part.js:1753
+#: part/models.py:2440 templates/js/translated/part.js:1754
msgid "Requires Value"
msgstr ""
-#: part/models.py:2427
+#: part/models.py:2441
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2432 templates/js/translated/part.js:1760
+#: part/models.py:2446 templates/js/translated/part.js:1761
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2433
+#: part/models.py:2447
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2444
+#: part/models.py:2458
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2480
+#: part/models.py:2494
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2488
+#: part/models.py:2502
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2495
+#: part/models.py:2509
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2525
+#: part/models.py:2539
msgid "Parent Part"
msgstr ""
-#: part/models.py:2527 part/models.py:2576 part/models.py:2577
+#: part/models.py:2541 part/models.py:2590 part/models.py:2591
#: templates/InvenTree/settings/settings.html:218
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2529
+#: part/models.py:2543
msgid "Data"
msgstr ""
-#: part/models.py:2529
+#: part/models.py:2543
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2581 templates/InvenTree/settings/settings.html:227
+#: part/models.py:2595 templates/InvenTree/settings/settings.html:227
msgid "Default Value"
msgstr ""
-#: part/models.py:2582
+#: part/models.py:2596
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2616
+#: part/models.py:2630
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2619 templates/js/translated/model_renderers.js:182
+#: part/models.py:2633 templates/js/translated/model_renderers.js:182
msgid "Part ID"
msgstr ""
-#: part/models.py:2620
+#: part/models.py:2634
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2623
+#: part/models.py:2637
msgid "Part Name"
msgstr ""
-#: part/models.py:2627
+#: part/models.py:2641
msgid "Part IPN"
msgstr ""
-#: part/models.py:2628
+#: part/models.py:2642
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2645
msgid "Level"
msgstr ""
-#: part/models.py:2632
+#: part/models.py:2646
msgid "BOM level"
msgstr ""
-#: part/models.py:2692
+#: part/models.py:2707
msgid "Select parent part"
msgstr ""
-#: part/models.py:2700
+#: part/models.py:2715
msgid "Sub part"
msgstr ""
-#: part/models.py:2701
+#: part/models.py:2716
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2707
+#: part/models.py:2722
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2709 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:791 templates/js/translated/bom.js:865
+#: part/models.py:2724 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2709
+#: part/models.py:2724
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2712 part/templates/part/upload_bom.html:55
+#: part/models.py:2727 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2713
+#: part/models.py:2728
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2716
+#: part/models.py:2731
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2719
+#: part/models.py:2734
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2721
+#: part/models.py:2736
msgid "Checksum"
msgstr ""
-#: part/models.py:2721
+#: part/models.py:2736
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2725 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:882
+#: part/models.py:2740 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:880
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2726
+#: part/models.py:2741
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2731 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:874
+#: part/models.py:2746 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:872
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2732
+#: part/models.py:2747
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2817 stock/models.py:394
+#: part/models.py:2832 stock/models.py:446
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2826 part/models.py:2828
+#: part/models.py:2841 part/models.py:2843
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2957
+#: part/models.py:2972
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2979
+#: part/models.py:2994
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2991
+#: part/models.py:3006
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2999
+#: part/models.py:3014
msgid "Substitute part"
msgstr ""
-#: part/models.py:3010
+#: part/models.py:3025
msgid "Part 1"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3029
msgid "Part 2"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3029
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3046
+#: part/models.py:3061
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
-#: part/serializers.py:667
+#: part/serializers.py:670
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:678
+#: part/serializers.py:681
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:679
+#: part/serializers.py:682
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:684
+#: part/serializers.py:687
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:685
+#: part/serializers.py:688
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:690
+#: part/serializers.py:693
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:691
+#: part/serializers.py:694
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:699
+msgid "Copy Substitute Parts"
+msgstr ""
+
+#: part/serializers.py:700
+msgid "Copy substitute parts when duplicate BOM items"
+msgstr ""
+
+#: part/serializers.py:744
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:735
+#: part/serializers.py:745
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:762
+#: part/serializers.py:772
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:805
+#: part/serializers.py:815
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:808
+#: part/serializers.py:818
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:811
+#: part/serializers.py:821
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:820
+#: part/serializers.py:830
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:828
+#: part/serializers.py:838
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:847
+#: part/serializers.py:857
msgid "At least one BOM item is required"
msgstr ""
@@ -4496,7 +4532,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:279
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:274
msgid "BOM actions"
msgstr ""
@@ -4548,7 +4584,7 @@ msgstr ""
msgid "Top level part category"
msgstr ""
-#: part/templates/part/category.html:114 part/templates/part/category.html:205
+#: part/templates/part/category.html:114 part/templates/part/category.html:202
#: part/templates/part/category_sidebar.html:7
msgid "Subcategories"
msgstr ""
@@ -4557,55 +4593,51 @@ msgstr ""
msgid "Parts (Including subcategories)"
msgstr ""
-#: part/templates/part/category.html:156
-msgid "Export Part Data"
-msgstr ""
-
-#: part/templates/part/category.html:157 part/templates/part/category.html:181
-msgid "Export"
-msgstr ""
-
-#: part/templates/part/category.html:160
+#: part/templates/part/category.html:157
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:161 templates/js/translated/bom.js:365
+#: part/templates/part/category.html:158 templates/js/translated/bom.js:365
msgid "New Part"
msgstr "新規パーツ"
-#: part/templates/part/category.html:175
+#: part/templates/part/category.html:172
msgid "Set category"
msgstr ""
-#: part/templates/part/category.html:175
+#: part/templates/part/category.html:172
msgid "Set Category"
msgstr ""
-#: part/templates/part/category.html:179
+#: part/templates/part/category.html:176
msgid "Print Labels"
msgstr ""
-#: part/templates/part/category.html:181
+#: part/templates/part/category.html:178
+msgid "Export"
+msgstr ""
+
+#: part/templates/part/category.html:178
msgid "Export Data"
msgstr ""
-#: part/templates/part/category.html:195
+#: part/templates/part/category.html:192
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:288
+#: part/templates/part/category.html:285
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:315
+#: part/templates/part/category.html:305
msgid "Create Part"
msgstr ""
-#: part/templates/part/category.html:318
+#: part/templates/part/category.html:308
msgid "Create another part after this one"
msgstr ""
-#: part/templates/part/category.html:319
+#: part/templates/part/category.html:309
msgid "Part created successfully"
msgstr ""
@@ -4676,155 +4708,150 @@ msgstr ""
msgid "Part Stock"
msgstr ""
-#: part/templates/part/detail.html:33
-#, python-format
-msgid "Showing stock for all variants of %(full_name)s"
-msgstr ""
-
-#: part/templates/part/detail.html:43
+#: part/templates/part/detail.html:38
msgid "Part Stock Allocations"
msgstr ""
-#: part/templates/part/detail.html:60
+#: part/templates/part/detail.html:55
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:65
+#: part/templates/part/detail.html:60
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:122
+#: part/templates/part/detail.html:117
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:168
+#: part/templates/part/detail.html:163
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:172
+#: part/templates/part/detail.html:167
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:173
+#: part/templates/part/detail.html:168
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:200
+#: part/templates/part/detail.html:195
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:237 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:52
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:241 part/templates/part/detail.html:242
+#: part/templates/part/detail.html:236 part/templates/part/detail.html:237
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:262 part/templates/part/part_sidebar.html:18
+#: part/templates/part/detail.html:257 part/templates/part/part_sidebar.html:18
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:267
+#: part/templates/part/detail.html:262
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:271 templates/js/translated/bom.js:283
+#: part/templates/part/detail.html:266 templates/js/translated/bom.js:283
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:268
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:283
+#: part/templates/part/detail.html:278
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:285 templates/js/translated/part.js:272
+#: part/templates/part/detail.html:279 templates/js/translated/part.js:272
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:287
+#: part/templates/part/detail.html:280
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:285
msgid "New BOM Item"
msgstr ""
-#: part/templates/part/detail.html:293
+#: part/templates/part/detail.html:286
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:306
+#: part/templates/part/detail.html:299
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:323
+#: part/templates/part/detail.html:316
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:348
+#: part/templates/part/detail.html:341
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:363
+#: part/templates/part/detail.html:356
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:391
+#: part/templates/part/detail.html:384
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:407
+#: part/templates/part/detail.html:400
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:589
+#: part/templates/part/detail.html:582
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:590
+#: part/templates/part/detail.html:583
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:639
+#: part/templates/part/detail.html:632
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:696
+#: part/templates/part/detail.html:689
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:704
+#: part/templates/part/detail.html:697
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:801
+#: part/templates/part/detail.html:794
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:858
+#: part/templates/part/detail.html:844
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:971
+#: part/templates/part/detail.html:957
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:983
+#: part/templates/part/detail.html:969
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:995
+#: part/templates/part/detail.html:981
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1084
+#: part/templates/part/detail.html:1070
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4969,7 +4996,7 @@ msgstr ""
#: templates/js/translated/company.js:508
#: templates/js/translated/company.js:765
#: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:533 templates/js/translated/part.js:610
+#: templates/js/translated/part.js:534 templates/js/translated/part.js:611
msgid "Inactive"
msgstr ""
@@ -4983,7 +5010,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2356
+#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2444
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5000,12 +5027,12 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:903
+#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:901
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1154
-#: templates/js/translated/part.js:1327
+#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1155
+#: templates/js/translated/part.js:1328
msgid "Building"
msgstr ""
@@ -5057,7 +5084,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:857
+#: templates/js/translated/bom.js:855
msgid "No supplier pricing available"
msgstr ""
@@ -5177,7 +5204,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:851
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849
msgid "Supplier Cost"
msgstr ""
@@ -5199,7 +5226,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1390
+#: part/templates/part/prices.html:215 part/views.py:1325
msgid "Add Internal Price Break"
msgstr ""
@@ -5219,9 +5246,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813
-#: templates/js/translated/part.js:497 templates/js/translated/part.js:1144
-#: templates/js/translated/part.js:1331
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811
+#: templates/js/translated/part.js:498 templates/js/translated/part.js:1145
+#: templates/js/translated/part.js:1332
msgid "No Stock"
msgstr ""
@@ -5275,100 +5302,100 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:172
+#: part/templatetags/inventree_extras.py:174
msgid "Unknown database"
msgstr ""
-#: part/views.py:90
+#: part/views.py:88
msgid "Set Part Category"
msgstr ""
-#: part/views.py:140
+#: part/views.py:138
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:212
+#: part/views.py:210
msgid "Match References"
msgstr ""
-#: part/views.py:509
+#: part/views.py:507
msgid "None"
msgstr ""
-#: part/views.py:568
+#: part/views.py:566
msgid "Part QR Code"
msgstr ""
-#: part/views.py:670
+#: part/views.py:668
msgid "Select Part Image"
msgstr ""
-#: part/views.py:696
+#: part/views.py:694
msgid "Updated part image"
msgstr ""
-#: part/views.py:699
+#: part/views.py:697
msgid "Part image not found"
msgstr ""
-#: part/views.py:850
+#: part/views.py:785
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:857
+#: part/views.py:792
msgid "Part was deleted"
msgstr ""
-#: part/views.py:866
+#: part/views.py:801
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1015
+#: part/views.py:950
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1025
+#: part/views.py:960
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1032
+#: part/views.py:967
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1091 templates/js/translated/part.js:315
+#: part/views.py:1026 templates/js/translated/part.js:315
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1129
+#: part/views.py:1064
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1135
+#: part/views.py:1070
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1144
+#: part/views.py:1079
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1245
+#: part/views.py:1180
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1301
+#: part/views.py:1236
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1323
+#: part/views.py:1258
msgid "Added new price break"
msgstr ""
-#: part/views.py:1399
+#: part/views.py:1334
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1407
+#: part/views.py:1342
msgid "Delete Internal Price Break"
msgstr ""
@@ -5574,12 +5601,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:556 stock/templates/stock/item_base.html:151
-#: templates/js/translated/build.js:373 templates/js/translated/build.js:521
-#: templates/js/translated/build.js:919 templates/js/translated/build.js:1295
+#: stock/models.py:608 stock/templates/stock/item_base.html:151
+#: templates/js/translated/build.js:374 templates/js/translated/build.js:522
+#: templates/js/translated/build.js:920 templates/js/translated/build.js:1296
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:99 templates/js/translated/order.js:2062
-#: templates/js/translated/order.js:2151 templates/js/translated/stock.js:423
+#: templates/js/translated/order.js:99 templates/js/translated/order.js:2150
+#: templates/js/translated/order.js:2239 templates/js/translated/stock.js:422
msgid "Serial Number"
msgstr ""
@@ -5588,19 +5615,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:2052
+#: stock/models.py:2104
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:2058
+#: stock/models.py:2110
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:50
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:924 templates/js/translated/stock.js:2657
+#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2613
msgid "Date"
msgstr ""
@@ -5618,26 +5645,26 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756
-#: templates/js/translated/stock.js:2910
+#: templates/js/translated/stock.js:542 templates/js/translated/stock.js:712
+#: templates/js/translated/stock.js:2866
msgid "Serial"
msgstr ""
-#: stock/api.py:501
+#: stock/api.py:503
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:508
+#: stock/api.py:510
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:533
+#: stock/api.py:535
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/forms.py:74 stock/forms.py:198 stock/models.py:613
+#: stock/forms.py:74 stock/forms.py:198 stock/models.py:665
#: stock/templates/stock/item_base.html:188
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1791
msgid "Expiry Date"
msgstr ""
@@ -5677,228 +5704,228 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:62 stock/models.py:650
+#: stock/models.py:62 stock/models.py:702
#: stock/templates/stock/item_base.html:402
msgid "Owner"
msgstr ""
-#: stock/models.py:63 stock/models.py:651
+#: stock/models.py:63 stock/models.py:703
msgid "Select Owner"
msgstr ""
-#: stock/models.py:375
+#: stock/models.py:427
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:463
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:421 stock/models.py:430
+#: stock/models.py:473 stock/models.py:482
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:422
+#: stock/models.py:474
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:444
+#: stock/models.py:496
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:450
+#: stock/models.py:502
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:457
+#: stock/models.py:509
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:500
+#: stock/models.py:552
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:509
+#: stock/models.py:561
msgid "Base part"
msgstr ""
-#: stock/models.py:517
+#: stock/models.py:569
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:523 stock/templates/stock/location.html:16
+#: stock/models.py:575 stock/templates/stock/location.html:16
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:526
+#: stock/models.py:578
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:585
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:539 stock/templates/stock/item_base.html:277
+#: stock/models.py:591 stock/templates/stock/item_base.html:277
msgid "Installed In"
msgstr ""
-#: stock/models.py:542
+#: stock/models.py:594
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:558
+#: stock/models.py:610
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:572
+#: stock/models.py:624
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:576
+#: stock/models.py:628
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:585
+#: stock/models.py:637
msgid "Source Build"
msgstr ""
-#: stock/models.py:587
+#: stock/models.py:639
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:598
+#: stock/models.py:650
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:601
+#: stock/models.py:653
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:607
+#: stock/models.py:659
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:614
+#: stock/models.py:666
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:627
+#: stock/models.py:679
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:627
+#: stock/models.py:679
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:637 stock/templates/stock/item.html:121
+#: stock/models.py:689 stock/templates/stock/item.html:121
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:646
+#: stock/models.py:698
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1171
+#: stock/models.py:1223
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1177
+#: stock/models.py:1229
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1183
+#: stock/models.py:1235
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1186
+#: stock/models.py:1238
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1189
+#: stock/models.py:1241
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1196
+#: stock/models.py:1248
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1267
+#: stock/models.py:1319
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1270
+#: stock/models.py:1322
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1273
+#: stock/models.py:1325
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1276
+#: stock/models.py:1328
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1279
+#: stock/models.py:1331
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1282
+#: stock/models.py:1334
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1289 stock/serializers.py:832
+#: stock/models.py:1341 stock/serializers.py:832
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1293
+#: stock/models.py:1345
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1297
+#: stock/models.py:1349
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1301
+#: stock/models.py:1353
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1473
+#: stock/models.py:1525
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1972
+#: stock/models.py:2024
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2029
+#: stock/models.py:2081
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2035
+#: stock/models.py:2087
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2053
+#: stock/models.py:2105
msgid "Test name"
msgstr ""
-#: stock/models.py:2059
+#: stock/models.py:2111
msgid "Test result"
msgstr ""
-#: stock/models.py:2065
+#: stock/models.py:2117
msgid "Test output value"
msgstr ""
-#: stock/models.py:2072
+#: stock/models.py:2124
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2078
+#: stock/models.py:2130
msgid "Test notes"
msgstr ""
@@ -5935,7 +5962,7 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:363 stock/views.py:1127
+#: stock/serializers.py:363 stock/views.py:1009
msgid "Serial numbers already exist"
msgstr ""
@@ -6052,11 +6079,11 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:147 templates/js/translated/stock.js:3019
+#: stock/templates/stock/item.html:147 templates/js/translated/stock.js:2975
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1479
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1435
msgid "Add Test Result"
msgstr ""
@@ -6070,7 +6097,7 @@ msgstr ""
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:46 templates/stock_table.html:24
+#: stock/templates/stock/item_base.html:46 templates/stock_table.html:21
msgid "Scan to Location"
msgstr ""
@@ -6083,15 +6110,15 @@ msgid "Stock adjustment actions"
msgstr ""
#: stock/templates/stock/item_base.html:69
-#: stock/templates/stock/location.html:52 templates/stock_table.html:50
+#: stock/templates/stock/location.html:52 templates/stock_table.html:47
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48
+#: stock/templates/stock/item_base.html:72 templates/stock_table.html:45
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49
+#: stock/templates/stock/item_base.html:75 templates/stock_table.html:46
msgid "Remove stock"
msgstr ""
@@ -6100,11 +6127,11 @@ msgid "Serialize stock"
msgstr ""
#: stock/templates/stock/item_base.html:82
-#: stock/templates/stock/location.html:58 templates/stock_table.html:51
+#: stock/templates/stock/location.html:58 templates/stock_table.html:48
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85 templates/stock_table.html:54
+#: stock/templates/stock/item_base.html:85 templates/stock_table.html:51
msgid "Assign to customer"
msgstr ""
@@ -6181,7 +6208,7 @@ msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:201
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1807
msgid "Last Updated"
msgstr ""
@@ -6218,7 +6245,7 @@ msgid "This stock item is serialized - it has a unique serial number and the qua
msgstr ""
#: stock/templates/stock/item_base.html:296
-#: templates/js/translated/build.js:1317
+#: templates/js/translated/build.js:1318
msgid "No location set"
msgstr ""
@@ -6320,11 +6347,11 @@ msgstr ""
msgid "Stock Locations"
msgstr ""
-#: stock/templates/stock/location.html:185 templates/stock_table.html:30
+#: stock/templates/stock/location.html:185 templates/stock_table.html:27
msgid "Printing Actions"
msgstr ""
-#: stock/templates/stock/location.html:189 templates/stock_table.html:34
+#: stock/templates/stock/location.html:189 templates/stock_table.html:31
msgid "Print labels"
msgstr ""
@@ -6348,7 +6375,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:749
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:631
msgid "Convert Stock Item"
msgstr ""
@@ -6369,95 +6396,95 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181 templates/js/translated/stock.js:139
+#: stock/views.py:152 templates/js/translated/stock.js:138
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:728 stock/views.py:854 stock/views.py:1136
+#: stock/views.py:259 stock/views.py:610 stock/views.py:736 stock/views.py:1018
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:274
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:293
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:302
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:342
+#: stock/views.py:313
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:353
+#: stock/views.py:324
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:370
+#: stock/views.py:341
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:371
+#: stock/views.py:342
msgid "Check the confirmation box"
msgstr ""
-#: stock/views.py:475
+#: stock/views.py:357
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:500
+#: stock/views.py:382
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:597 templates/js/translated/stock.js:1074
+#: stock/views.py:479 templates/js/translated/stock.js:1030
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:608
+#: stock/views.py:490
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:630 templates/js/translated/stock.js:332
+#: stock/views.py:512 templates/js/translated/stock.js:331
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:780
+#: stock/views.py:662
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:881
+#: stock/views.py:763
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1023 templates/js/translated/stock.js:312
+#: stock/views.py:905 templates/js/translated/stock.js:311
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1105
+#: stock/views.py:987
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1205
+#: stock/views.py:1087
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1218
+#: stock/views.py:1100
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1229
+#: stock/views.py:1111
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1236
+#: stock/views.py:1118
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1245
+#: stock/views.py:1127
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -7381,14 +7408,14 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1335
+#: templates/js/translated/bom.js:1340
msgid "Required Quantity"
msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:804 templates/js/translated/build.js:1411
-#: templates/js/translated/build.js:2057
+#: templates/js/translated/bom.js:802 templates/js/translated/build.js:1412
+#: templates/js/translated/build.js:2110
#: templates/js/translated/table_filters.js:178
msgid "Available"
msgstr ""
@@ -7580,7 +7607,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:982
msgid "Remove stock item"
msgstr ""
@@ -7635,12 +7662,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286
-#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518
+#: templates/js/translated/order.js:429 templates/js/translated/tables.js:53
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519
+#: templates/js/translated/order.js:430
msgid "Select file format"
msgstr ""
@@ -7716,275 +7743,307 @@ msgstr ""
msgid "Edit BOM Item Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:741
+#: templates/js/translated/bom.js:739
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:745 templates/js/translated/build.js:1393
+#: templates/js/translated/bom.js:743 templates/js/translated/build.js:1394
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:750
+#: templates/js/translated/bom.js:748
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:822
+#: templates/js/translated/bom.js:820
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:837
+#: templates/js/translated/bom.js:835
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:844
+#: templates/js/translated/bom.js:842
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:893 templates/js/translated/bom.js:982
+#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:953
+#: templates/js/translated/bom.js:951
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:955
+#: templates/js/translated/bom.js:953
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:957
+#: templates/js/translated/bom.js:955
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138
+#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:961 templates/js/translated/bom.js:1121
+#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1060 templates/js/translated/build.js:1137
+#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1138
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1116
+#: templates/js/translated/bom.js:1121
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:1318 templates/js/translated/build.js:1377
+#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1378
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1340
+#: templates/js/translated/bom.js:1345
msgid "Inherited from parent BOM"
msgstr ""
-#: templates/js/translated/build.js:85
+#: templates/js/translated/build.js:86
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:119
+#: templates/js/translated/build.js:120
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:140
+#: templates/js/translated/build.js:141
msgid "Build order is ready to be completed"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:146
msgid "Build Order is incomplete"
msgstr ""
-#: templates/js/translated/build.js:173
+#: templates/js/translated/build.js:174
msgid "Complete Build Order"
msgstr ""
-#: templates/js/translated/build.js:214 templates/js/translated/stock.js:92
-#: templates/js/translated/stock.js:181
+#: templates/js/translated/build.js:215 templates/js/translated/stock.js:91
+#: templates/js/translated/stock.js:180
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:216 templates/js/translated/stock.js:94
-#: templates/js/translated/stock.js:183
+#: templates/js/translated/build.js:217 templates/js/translated/stock.js:93
+#: templates/js/translated/stock.js:182
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/build.js:225
+#: templates/js/translated/build.js:226
msgid "The Bill of Materials contains trackable parts"
msgstr ""
-#: templates/js/translated/build.js:226
+#: templates/js/translated/build.js:227
msgid "Build outputs must be generated individually"
msgstr ""
-#: templates/js/translated/build.js:234
+#: templates/js/translated/build.js:235
msgid "Trackable parts can have serial numbers specified"
msgstr ""
-#: templates/js/translated/build.js:235
+#: templates/js/translated/build.js:236
msgid "Enter serial numbers to generate multiple single build outputs"
msgstr ""
-#: templates/js/translated/build.js:242
+#: templates/js/translated/build.js:243
msgid "Create Build Output"
msgstr ""
-#: templates/js/translated/build.js:273
+#: templates/js/translated/build.js:274
msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:284
+#: templates/js/translated/build.js:285
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:293
+#: templates/js/translated/build.js:294
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:301
+#: templates/js/translated/build.js:302
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:324
+#: templates/js/translated/build.js:325
msgid "Are you sure you wish to unallocate stock items from this build?"
msgstr ""
-#: templates/js/translated/build.js:342
+#: templates/js/translated/build.js:343
msgid "Unallocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:360 templates/js/translated/build.js:508
+#: templates/js/translated/build.js:361 templates/js/translated/build.js:509
msgid "Select Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:361 templates/js/translated/build.js:509
+#: templates/js/translated/build.js:362 templates/js/translated/build.js:510
msgid "At least one build output must be selected"
msgstr ""
-#: templates/js/translated/build.js:415 templates/js/translated/build.js:563
+#: templates/js/translated/build.js:416 templates/js/translated/build.js:564
msgid "Output"
msgstr ""
-#: templates/js/translated/build.js:431
+#: templates/js/translated/build.js:432
msgid "Complete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:576
+#: templates/js/translated/build.js:577
msgid "Delete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:665
+#: templates/js/translated/build.js:666
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:703 templates/js/translated/order.js:1965
+#: templates/js/translated/build.js:704 templates/js/translated/order.js:2053
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:885
+#: templates/js/translated/build.js:886
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1334 templates/js/translated/build.js:2068
-#: templates/js/translated/order.js:2099
+#: templates/js/translated/build.js:1335 templates/js/translated/build.js:2121
+#: templates/js/translated/order.js:2187
msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1336 templates/js/translated/build.js:2069
-#: templates/js/translated/order.js:2100
+#: templates/js/translated/build.js:1337 templates/js/translated/build.js:2122
+#: templates/js/translated/order.js:2188
msgid "Delete stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1354
+#: templates/js/translated/build.js:1355
msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:1364
+#: templates/js/translated/build.js:1365
msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:1389
+#: templates/js/translated/build.js:1390
msgid "Substitute parts available"
msgstr ""
-#: templates/js/translated/build.js:1406
+#: templates/js/translated/build.js:1407
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1416 templates/js/translated/build.js:1656
-#: templates/js/translated/build.js:2064 templates/js/translated/order.js:2366
+#: templates/js/translated/build.js:1417 templates/js/translated/build.js:1667
+#: templates/js/translated/build.js:2117 templates/js/translated/order.js:2454
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1472 templates/js/translated/order.js:2446
+#: templates/js/translated/build.js:1473 templates/js/translated/order.js:2534
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:1476 templates/stock_table.html:53
+#: templates/js/translated/build.js:1477 templates/stock_table.html:50
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1479 templates/js/translated/order.js:2439
+#: templates/js/translated/build.js:1480 templates/js/translated/order.js:2527
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:1558 templates/js/translated/order.js:1616
-msgid "Specify stock allocation quantity"
-msgstr ""
-
-#: templates/js/translated/build.js:1629 templates/js/translated/label.js:134
-#: templates/js/translated/order.js:1667 templates/js/translated/report.js:225
+#: templates/js/translated/build.js:1519 templates/js/translated/label.js:134
+#: templates/js/translated/order.js:1755 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1630 templates/js/translated/order.js:1668
+#: templates/js/translated/build.js:1520 templates/js/translated/order.js:1756
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:1644 templates/js/translated/order.js:1682
+#: templates/js/translated/build.js:1569 templates/js/translated/order.js:1704
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:1640
+msgid "All Parts Allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:1641
+msgid "All selected parts have been fully allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:1655 templates/js/translated/order.js:1770
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1717
+#: templates/js/translated/build.js:1684 templates/js/translated/order.js:1805
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1674
+#: templates/js/translated/build.js:1685
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1730
+#: templates/js/translated/build.js:1696 templates/js/translated/order.js:1818
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1757 templates/js/translated/order.js:1807
+#: templates/js/translated/build.js:1768 templates/js/translated/order.js:1895
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1875
+#: templates/js/translated/build.js:1865
+msgid "Automatic Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1866
+msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
+msgstr ""
+
+#: templates/js/translated/build.js:1868
+msgid "If a location is specifed, stock will only be allocated from that location"
+msgstr ""
+
+#: templates/js/translated/build.js:1869
+msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
+msgstr ""
+
+#: templates/js/translated/build.js:1870
+msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
+msgstr ""
+
+#: templates/js/translated/build.js:1890
+msgid "Allocate Stock Items"
+msgstr ""
+
+#: templates/js/translated/build.js:1928
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1892 templates/js/translated/part.js:1235
-#: templates/js/translated/part.js:1646 templates/js/translated/stock.js:1643
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/build.js:1945 templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1647 templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:2567
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1912
+#: templates/js/translated/build.js:1965
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1976 templates/js/translated/stock.js:2823
+#: templates/js/translated/build.js:2029 templates/js/translated/stock.js:2779
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1988
+#: templates/js/translated/build.js:2041
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:2045
+#: templates/js/translated/build.js:2098
msgid "No parts allocated for"
msgstr ""
@@ -8049,34 +8108,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:517
-#: templates/js/translated/part.js:602
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:518
+#: templates/js/translated/part.js:603
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:521
-#: templates/js/translated/part.js:606
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:522
+#: templates/js/translated/part.js:607
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:696
+#: templates/js/translated/company.js:631 templates/js/translated/part.js:697
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:738
+#: templates/js/translated/company.js:668 templates/js/translated/part.js:739
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:739
+#: templates/js/translated/company.js:669 templates/js/translated/part.js:740
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:756
+#: templates/js/translated/company.js:688 templates/js/translated/part.js:757
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:768
+#: templates/js/translated/company.js:699 templates/js/translated/part.js:769
msgid "Delete Parameter"
msgstr ""
@@ -8085,12 +8144,12 @@ msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:429
+#: templates/js/translated/filters.js:441
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:430
+#: templates/js/translated/filters.js:442
msgid "false"
msgstr ""
@@ -8098,19 +8157,23 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:286
+#: templates/js/translated/filters.js:288
+msgid "Download data"
+msgstr ""
+
+#: templates/js/translated/filters.js:291
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:290
+#: templates/js/translated/filters.js:295
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:293
+#: templates/js/translated/filters.js:298
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:338
+#: templates/js/translated/filters.js:350
msgid "Create filter"
msgstr ""
@@ -8181,7 +8244,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1050
+#: templates/js/translated/stock.js:1006
msgid "Select Stock Items"
msgstr ""
@@ -8354,206 +8417,214 @@ msgstr ""
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:366
+#: templates/js/translated/order.js:426
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:460
+#: templates/js/translated/order.js:520
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:461
+#: templates/js/translated/order.js:521
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:481 templates/js/translated/order.js:580
+#: templates/js/translated/order.js:541 templates/js/translated/order.js:640
msgid "Add batch code"
msgstr ""
-#: templates/js/translated/order.js:487 templates/js/translated/order.js:591
+#: templates/js/translated/order.js:547 templates/js/translated/order.js:651
msgid "Add serial numbers"
msgstr ""
-#: templates/js/translated/order.js:499
+#: templates/js/translated/order.js:559
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:563 templates/js/translated/stock.js:2263
+#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2219
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:652
+#: templates/js/translated/order.js:712
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:653
+#: templates/js/translated/order.js:713
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:655
+#: templates/js/translated/order.js:715
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/order.js:674
+#: templates/js/translated/order.js:734
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:675
+#: templates/js/translated/order.js:735
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:865 templates/js/translated/part.js:809
+#: templates/js/translated/order.js:925 templates/js/translated/part.js:810
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:890 templates/js/translated/order.js:1338
+#: templates/js/translated/order.js:950 templates/js/translated/order.js:1426
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:1018 templates/js/translated/order.js:2496
+#: templates/js/translated/order.js:1074 templates/js/translated/order.js:2585
+msgid "Duplicate Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:1104 templates/js/translated/order.js:2607
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1030 templates/js/translated/order.js:2507
+#: templates/js/translated/order.js:1117 templates/js/translated/order.js:2618
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:1073
+#: templates/js/translated/order.js:1160
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:1100 templates/js/translated/order.js:2255
+#: templates/js/translated/order.js:1187 templates/js/translated/order.js:2343
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:1154 templates/js/translated/order.js:2280
-#: templates/js/translated/part.js:1863 templates/js/translated/part.js:2074
+#: templates/js/translated/order.js:1241 templates/js/translated/order.js:2368
+#: templates/js/translated/part.js:1864 templates/js/translated/part.js:2075
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1169 templates/js/translated/order.js:2296
+#: templates/js/translated/order.js:1256 templates/js/translated/order.js:2384
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:1210 templates/js/translated/order.js:2338
-#: templates/js/translated/part.js:918
+#: templates/js/translated/order.js:1297 templates/js/translated/order.js:2426
+#: templates/js/translated/part.js:919
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:1269 templates/js/translated/part.js:964
+#: templates/js/translated/order.js:1356 templates/js/translated/part.js:965
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1273 templates/js/translated/order.js:2452
+#: templates/js/translated/order.js:1360 templates/js/translated/order.js:2540
+msgid "Duplicate line item"
+msgstr ""
+
+#: templates/js/translated/order.js:1361 templates/js/translated/order.js:2541
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:1274 templates/js/translated/order.js:2456
+#: templates/js/translated/order.js:1362 templates/js/translated/order.js:2545
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1314
+#: templates/js/translated/order.js:1402
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1352
+#: templates/js/translated/order.js:1440
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1439
+#: templates/js/translated/order.js:1527
msgid "Edit shipment"
msgstr ""
-#: templates/js/translated/order.js:1442
+#: templates/js/translated/order.js:1530
msgid "Complete shipment"
msgstr ""
-#: templates/js/translated/order.js:1447
+#: templates/js/translated/order.js:1535
msgid "Delete shipment"
msgstr ""
-#: templates/js/translated/order.js:1467
+#: templates/js/translated/order.js:1555
msgid "Edit Shipment"
msgstr ""
-#: templates/js/translated/order.js:1484
+#: templates/js/translated/order.js:1572
msgid "Delete Shipment"
msgstr ""
-#: templates/js/translated/order.js:1518
+#: templates/js/translated/order.js:1606
msgid "No matching shipments found"
msgstr ""
-#: templates/js/translated/order.js:1528
+#: templates/js/translated/order.js:1616
msgid "Shipment Reference"
msgstr ""
-#: templates/js/translated/order.js:1552
+#: templates/js/translated/order.js:1640
msgid "Not shipped"
msgstr ""
-#: templates/js/translated/order.js:1558
+#: templates/js/translated/order.js:1646
msgid "Tracking"
msgstr ""
-#: templates/js/translated/order.js:1718
+#: templates/js/translated/order.js:1806
msgid "Allocate Stock Items to Sales Order"
msgstr ""
-#: templates/js/translated/order.js:1926
+#: templates/js/translated/order.js:2014
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:2015
+#: templates/js/translated/order.js:2103
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:2032
+#: templates/js/translated/order.js:2120
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:2033
+#: templates/js/translated/order.js:2121
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:2076 templates/js/translated/order.js:2165
-#: templates/js/translated/stock.js:1559
+#: templates/js/translated/order.js:2164 templates/js/translated/order.js:2253
+#: templates/js/translated/stock.js:1515
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/order.js:2084 templates/js/translated/order.js:2174
+#: templates/js/translated/order.js:2172 templates/js/translated/order.js:2262
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:2436
+#: templates/js/translated/order.js:2524
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:2442
+#: templates/js/translated/order.js:2530
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:2449 templates/js/translated/order.js:2616
+#: templates/js/translated/order.js:2537 templates/js/translated/order.js:2727
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:2460
+#: templates/js/translated/order.js:2549
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:2463
+#: templates/js/translated/order.js:2552
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:2522
+#: templates/js/translated/order.js:2633
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:2624
+#: templates/js/translated/order.js:2735
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:2638
+#: templates/js/translated/order.js:2749
msgid "No matching line items"
msgstr ""
@@ -8677,117 +8748,117 @@ msgstr ""
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:481
+#: templates/js/translated/part.js:482
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:509 templates/js/translated/part.js:594
+#: templates/js/translated/part.js:510 templates/js/translated/part.js:595
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:513 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:514 templates/js/translated/part.js:599
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:525
+#: templates/js/translated/part.js:526
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:529
+#: templates/js/translated/part.js:530
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:644
+#: templates/js/translated/part.js:645
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1034
+#: templates/js/translated/part.js:1035
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1058
+#: templates/js/translated/part.js:1059
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1125 templates/js/translated/part.js:1385
+#: templates/js/translated/part.js:1126 templates/js/translated/part.js:1386
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1295
+#: templates/js/translated/part.js:1296
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1318
+#: templates/js/translated/part.js:1319
#: templates/js/translated/table_filters.js:425
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1409 templates/js/translated/part.js:1581
-#: templates/js/translated/stock.js:2572
+#: templates/js/translated/part.js:1410 templates/js/translated/part.js:1582
+#: templates/js/translated/stock.js:2528
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1425
+#: templates/js/translated/part.js:1426
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1600 templates/js/translated/stock.js:2591
+#: templates/js/translated/part.js:1601 templates/js/translated/stock.js:2547
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1664
+#: templates/js/translated/part.js:1665
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1678 templates/js/translated/stock.js:2635
+#: templates/js/translated/part.js:1679 templates/js/translated/stock.js:2591
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1722
+#: templates/js/translated/part.js:1723
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1773 templates/js/translated/stock.js:1270
+#: templates/js/translated/part.js:1774 templates/js/translated/stock.js:1226
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1774 templates/js/translated/stock.js:1271
-#: templates/js/translated/stock.js:1517
+#: templates/js/translated/part.js:1775 templates/js/translated/stock.js:1227
+#: templates/js/translated/stock.js:1473
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1780
+#: templates/js/translated/part.js:1781
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1802
+#: templates/js/translated/part.js:1803
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1816
+#: templates/js/translated/part.js:1817
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1841
+#: templates/js/translated/part.js:1842
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1896
+#: templates/js/translated/part.js:1897
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1897
+#: templates/js/translated/part.js:1898
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1998
+#: templates/js/translated/part.js:1999
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:2017
+#: templates/js/translated/part.js:2018
msgid "Single Price Difference"
msgstr ""
@@ -8861,368 +8932,356 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:102
+#: templates/js/translated/stock.js:101
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:111
+#: templates/js/translated/stock.js:110
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:154
+#: templates/js/translated/stock.js:153
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:194
+#: templates/js/translated/stock.js:193
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:233
+#: templates/js/translated/stock.js:232
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/stock.js:238
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:381
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:395
+#: templates/js/translated/stock.js:394
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:420
+#: templates/js/translated/stock.js:419
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425
+#: templates/js/translated/stock.js:423 templates/js/translated/stock.js:424
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:441
+#: templates/js/translated/stock.js:440
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:461
+#: templates/js/translated/stock.js:460
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:470
+#: templates/js/translated/stock.js:469
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:515
-msgid "Export Stock"
-msgstr ""
-
-#: templates/js/translated/stock.js:526
-msgid "Include Sublocations"
-msgstr ""
-
-#: templates/js/translated/stock.js:527
-msgid "Include stock items in sublocations"
-msgstr ""
-
-#: templates/js/translated/stock.js:636
+#: templates/js/translated/stock.js:592
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:637
+#: templates/js/translated/stock.js:593
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:714
+#: templates/js/translated/stock.js:670
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:715
+#: templates/js/translated/stock.js:671
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:717
+#: templates/js/translated/stock.js:673
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:718
+#: templates/js/translated/stock.js:674
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:804
+#: templates/js/translated/stock.js:760
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:805
+#: templates/js/translated/stock.js:761
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:900
+#: templates/js/translated/stock.js:856
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:901
+#: templates/js/translated/stock.js:857
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:907
+#: templates/js/translated/stock.js:863
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:908
+#: templates/js/translated/stock.js:864
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:912
+#: templates/js/translated/stock.js:868
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:913
+#: templates/js/translated/stock.js:869
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:917
+#: templates/js/translated/stock.js:873
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:918 users/models.py:213
+#: templates/js/translated/stock.js:874 users/models.py:213
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:922
+#: templates/js/translated/stock.js:878
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1011
+#: templates/js/translated/stock.js:967
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1011
+#: templates/js/translated/stock.js:967
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1051
+#: templates/js/translated/stock.js:1007
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1209
+#: templates/js/translated/stock.js:1165
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1211
+#: templates/js/translated/stock.js:1167
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1216
+#: templates/js/translated/stock.js:1172
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1263
+#: templates/js/translated/stock.js:1219
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1266
+#: templates/js/translated/stock.js:1222
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1292
+#: templates/js/translated/stock.js:1248
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1348
+#: templates/js/translated/stock.js:1304
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1500
+#: templates/js/translated/stock.js:1456
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1522
+#: templates/js/translated/stock.js:1478
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1551
+#: templates/js/translated/stock.js:1507
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1511
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1563
+#: templates/js/translated/stock.js:1519
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1569
+#: templates/js/translated/stock.js:1525
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1727
+#: templates/js/translated/stock.js:1683
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1732
+#: templates/js/translated/stock.js:1688
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1691
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1739
+#: templates/js/translated/stock.js:1695
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1741
+#: templates/js/translated/stock.js:1697
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1747
+#: templates/js/translated/stock.js:1703
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1749
+#: templates/js/translated/stock.js:1705
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1751
+#: templates/js/translated/stock.js:1707
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1756
+#: templates/js/translated/stock.js:1712
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1763
+#: templates/js/translated/stock.js:1719
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1765
+#: templates/js/translated/stock.js:1721
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1767
+#: templates/js/translated/stock.js:1723
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1771
+#: templates/js/translated/stock.js:1727
#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1821
+#: templates/js/translated/stock.js:1777
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1903
+#: templates/js/translated/stock.js:1859
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1941
+#: templates/js/translated/stock.js:1897
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1962 templates/js/translated/stock.js:2010
+#: templates/js/translated/stock.js:1918 templates/js/translated/stock.js:1966
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:2050
+#: templates/js/translated/stock.js:2006
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:2077
+#: templates/js/translated/stock.js:2033
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:2079
+#: templates/js/translated/stock.js:2035
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:2278
+#: templates/js/translated/stock.js:2234
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2292
+#: templates/js/translated/stock.js:2248
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2293
+#: templates/js/translated/stock.js:2249
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2472
+#: templates/js/translated/stock.js:2428
msgid "Allocated Quantity"
msgstr ""
-#: templates/js/translated/stock.js:2682
+#: templates/js/translated/stock.js:2638
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2707
+#: templates/js/translated/stock.js:2663
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2726
+#: templates/js/translated/stock.js:2682
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2745
+#: templates/js/translated/stock.js:2701
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2763
+#: templates/js/translated/stock.js:2719
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2786
+#: templates/js/translated/stock.js:2742
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2794
+#: templates/js/translated/stock.js:2750
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2835
+#: templates/js/translated/stock.js:2791
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2836
+#: templates/js/translated/stock.js:2792
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2887
+#: templates/js/translated/stock.js:2843
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2938
+#: templates/js/translated/stock.js:2894
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2974
+#: templates/js/translated/stock.js:2930
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2975
+#: templates/js/translated/stock.js:2931
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2977
+#: templates/js/translated/stock.js:2933
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2978
+#: templates/js/translated/stock.js:2934
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2979
+#: templates/js/translated/stock.js:2935
msgid "The Stock Item is serialized and does not belong to another item"
msgstr ""
-#: templates/js/translated/stock.js:2992
+#: templates/js/translated/stock.js:2948
msgid "Select part to install"
msgstr ""
@@ -9429,60 +9488,68 @@ msgstr ""
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:368
+#: templates/js/translated/tables.js:50
+msgid "Export Table Data"
+msgstr ""
+
+#: templates/js/translated/tables.js:54
+msgid "Select File Format"
+msgstr ""
+
+#: templates/js/translated/tables.js:433
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:371
+#: templates/js/translated/tables.js:436
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:376
+#: templates/js/translated/tables.js:441
msgid "Showing all rows"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:382 templates/search_form.html:6
+#: templates/js/translated/tables.js:447 templates/search_form.html:6
#: templates/search_form.html:7
msgid "Search"
msgstr ""
-#: templates/js/translated/tables.js:385
+#: templates/js/translated/tables.js:450
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:388
+#: templates/js/translated/tables.js:453
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:391
+#: templates/js/translated/tables.js:456
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:394
+#: templates/js/translated/tables.js:459
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:397
+#: templates/js/translated/tables.js:462
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:400
+#: templates/js/translated/tables.js:465
msgid "All"
msgstr ""
@@ -9586,63 +9653,59 @@ msgstr ""
msgid "Email settings not configured"
msgstr ""
-#: templates/stock_table.html:14
-msgid "Export Stock Information"
-msgstr ""
-
-#: templates/stock_table.html:20
+#: templates/stock_table.html:17
msgid "Barcode Actions"
msgstr ""
-#: templates/stock_table.html:36
+#: templates/stock_table.html:33
msgid "Print test reports"
msgstr ""
-#: templates/stock_table.html:43
+#: templates/stock_table.html:40
msgid "Stock Options"
msgstr ""
-#: templates/stock_table.html:48
+#: templates/stock_table.html:45
msgid "Add to selected stock items"
msgstr ""
-#: templates/stock_table.html:49
+#: templates/stock_table.html:46
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:50
+#: templates/stock_table.html:47
msgid "Stocktake selected stock items"
msgstr ""
-#: templates/stock_table.html:51
+#: templates/stock_table.html:48
msgid "Move selected stock items"
msgstr ""
-#: templates/stock_table.html:52
+#: templates/stock_table.html:49
msgid "Merge selected stock items"
msgstr ""
-#: templates/stock_table.html:52
+#: templates/stock_table.html:49
msgid "Merge stock"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:50
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:52
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:52
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:55
msgid "Delete selected items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:55
msgid "Delete stock"
msgstr ""
diff --git a/InvenTree/locale/ko/LC_MESSAGES/django.po b/InvenTree/locale/ko/LC_MESSAGES/django.po
index 5ea18bf8b5..235818484b 100644
--- a/InvenTree/locale/ko/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ko/LC_MESSAGES/django.po
@@ -1,10 +1,10 @@
-#: templates/js/translated/order.js:2090
+#: templates/js/translated/order.js:2178
msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-03-01 13:34+0000\n"
-"PO-Revision-Date: 2022-03-01 14:09\n"
+"POT-Creation-Date: 2022-03-07 04:31+0000\n"
+"PO-Revision-Date: 2022-03-07 04:47\n"
"Last-Translator: \n"
"Language-Team: Korean\n"
"Language: ko_KR\n"
@@ -86,7 +86,7 @@ msgid "Duplicate serial: {sn}"
msgstr ""
#: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435
-#: stock/views.py:1101
+#: stock/views.py:983
msgid "Invalid quantity provided"
msgstr ""
@@ -114,100 +114,100 @@ msgstr ""
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:176
+#: InvenTree/models.py:185
msgid "Missing file"
msgstr ""
-#: InvenTree/models.py:177
+#: InvenTree/models.py:186
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:188 stock/models.py:2071
+#: InvenTree/models.py:197 stock/models.py:2123
#: templates/js/translated/attachment.js:119
msgid "Attachment"
msgstr "첨부파일"
-#: InvenTree/models.py:189
+#: InvenTree/models.py:198
msgid "Select file to attach"
msgstr "첨부할 파일을 선택하세요"
-#: InvenTree/models.py:195 company/models.py:131 company/models.py:348
+#: InvenTree/models.py:204 company/models.py:131 company/models.py:348
#: company/models.py:564 order/models.py:127 part/models.py:860
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1346
+#: templates/js/translated/company.js:829 templates/js/translated/part.js:1347
msgid "Link"
msgstr "링크"
-#: InvenTree/models.py:196 build/models.py:330 part/models.py:861
-#: stock/models.py:566
+#: InvenTree/models.py:205 build/models.py:332 part/models.py:861
+#: stock/models.py:618
msgid "Link to external URL"
msgstr "외부 URL로 링크"
-#: InvenTree/models.py:199 templates/js/translated/attachment.js:163
+#: InvenTree/models.py:208 templates/js/translated/attachment.js:163
msgid "Comment"
msgstr ""
-#: InvenTree/models.py:199
+#: InvenTree/models.py:208
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1277
+#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1277
#: common/models.py:1278 common/models.py:1506 common/models.py:1507
-#: part/models.py:2303 part/models.py:2323
+#: part/models.py:2317 part/models.py:2337
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2817
+#: templates/js/translated/stock.js:2773
msgid "User"
msgstr "사용자"
-#: InvenTree/models.py:209
+#: InvenTree/models.py:218
msgid "upload date"
msgstr "업로드 날짜"
-#: InvenTree/models.py:232
+#: InvenTree/models.py:241
msgid "Filename must not be empty"
msgstr "파일명은 비워둘 수 없습니다"
-#: InvenTree/models.py:255
+#: InvenTree/models.py:264
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:265
+#: InvenTree/models.py:274
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "파일명에 허용되지 않은 문자 '{c}'가 포함되어 있습니다"
-#: InvenTree/models.py:268
+#: InvenTree/models.py:277
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:275
+#: InvenTree/models.py:284
msgid "Attachment with this filename already exists"
msgstr "같은 이름의 첨부파일이 이미 존재합니다"
-#: InvenTree/models.py:282
+#: InvenTree/models.py:291
msgid "Error renaming file"
msgstr "파일 이름 바꾸기 오류"
-#: InvenTree/models.py:317
+#: InvenTree/models.py:326
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1492
+#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1492
#: company/models.py:415 label/models.py:112 part/models.py:804
-#: part/models.py:2487 plugin/models.py:40 report/models.py:181
+#: part/models.py:2501 plugin/models.py:40 report/models.py:181
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:48
#: templates/InvenTree/settings/plugin.html:125
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:319
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:567
-#: templates/js/translated/part.js:706 templates/js/translated/part.js:1653
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/company.js:641 templates/js/translated/part.js:568
+#: templates/js/translated/part.js:707 templates/js/translated/part.js:1654
+#: templates/js/translated/stock.js:2573
msgid "Name"
msgstr "이름"
-#: InvenTree/models.py:340 build/models.py:207
+#: InvenTree/models.py:349 build/models.py:209
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
@@ -219,28 +219,28 @@ msgstr "이름"
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:92
#: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:765
-#: templates/js/translated/build.js:1920 templates/js/translated/company.js:345
+#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763
+#: templates/js/translated/build.js:1973 templates/js/translated/company.js:345
#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:911
-#: templates/js/translated/order.js:1105 templates/js/translated/order.js:1366
-#: templates/js/translated/part.js:626 templates/js/translated/part.js:1021
-#: templates/js/translated/part.js:1106 templates/js/translated/part.js:1276
-#: templates/js/translated/part.js:1672 templates/js/translated/part.js:1741
-#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2446
-#: templates/js/translated/stock.js:2629 templates/js/translated/stock.js:2667
+#: templates/js/translated/company.js:840 templates/js/translated/order.js:971
+#: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454
+#: templates/js/translated/part.js:627 templates/js/translated/part.js:1022
+#: templates/js/translated/part.js:1107 templates/js/translated/part.js:1277
+#: templates/js/translated/part.js:1673 templates/js/translated/part.js:1742
+#: templates/js/translated/stock.js:1656 templates/js/translated/stock.js:2402
+#: templates/js/translated/stock.js:2585 templates/js/translated/stock.js:2623
msgid "Description"
msgstr "설명"
-#: InvenTree/models.py:341
+#: InvenTree/models.py:350
msgid "Description (optional)"
msgstr "설명 (선택 사항)"
-#: InvenTree/models.py:349
+#: InvenTree/models.py:358
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:65 part/models.py:2805
+#: InvenTree/serializers.py:65 part/models.py:2820
msgid "Must be a valid number"
msgstr "유효한 숫자여야 합니다"
@@ -294,87 +294,87 @@ msgstr ""
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:665
msgid "German"
msgstr "독일어"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:666
msgid "Greek"
msgstr "그리스어"
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:667
msgid "English"
msgstr "영어"
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:668
msgid "Spanish"
msgstr "스페인어"
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:669
msgid "Spanish (Mexican)"
msgstr "스페인어 (멕시코)"
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:670
msgid "French"
msgstr "프랑스어"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:671
msgid "Hebrew"
msgstr "히브리어"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:672
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:673
msgid "Italian"
msgstr "이탈리아어"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:674
msgid "Japanese"
msgstr "일본어"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:675
msgid "Korean"
msgstr "한국어"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:676
msgid "Dutch"
msgstr "네덜란드어"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:677
msgid "Norwegian"
msgstr "노르웨이어"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:678
msgid "Polish"
msgstr "폴란드어"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:679
msgid "Portugese"
msgstr "포르투갈어"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:680
msgid "Russian"
msgstr "러시아어"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:681
msgid "Swedish"
msgstr "스웨덴어"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:682
msgid "Thai"
msgstr "태국어"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:683
msgid "Turkish"
msgstr "터키어"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:684
msgid "Vietnamese"
msgstr "베트남어"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:685
msgid "Chinese"
msgstr "중국어"
@@ -421,7 +421,7 @@ msgid "Returned"
msgstr ""
#: InvenTree/status_codes.py:143 order/models.py:997
-#: templates/js/translated/order.js:2097 templates/js/translated/order.js:2394
+#: templates/js/translated/order.js:2185 templates/js/translated/order.js:2482
msgid "Shipped"
msgstr ""
@@ -501,7 +501,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2204
+#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2160
msgid "Merged stock items"
msgstr ""
@@ -593,43 +593,43 @@ msgstr ""
msgid "System Information"
msgstr "시스템 정보"
-#: barcodes/api.py:54 barcodes/api.py:152
+#: barcodes/api.py:55 barcodes/api.py:156
msgid "Must provide barcode_data parameter"
msgstr ""
-#: barcodes/api.py:128
+#: barcodes/api.py:132
msgid "No match found for barcode data"
msgstr ""
-#: barcodes/api.py:130
+#: barcodes/api.py:134
msgid "Match found for barcode data"
msgstr ""
-#: barcodes/api.py:155
+#: barcodes/api.py:159
msgid "Must provide stockitem parameter"
msgstr ""
-#: barcodes/api.py:162
+#: barcodes/api.py:166
msgid "No matching stock item found"
msgstr ""
-#: barcodes/api.py:193
+#: barcodes/api.py:197
msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:197
+#: barcodes/api.py:201
msgid "Barcode already matches Stock Location"
msgstr ""
-#: barcodes/api.py:201
+#: barcodes/api.py:205
msgid "Barcode already matches Part"
msgstr ""
-#: barcodes/api.py:207 barcodes/api.py:219
+#: barcodes/api.py:211 barcodes/api.py:223
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: barcodes/api.py:225
+#: barcodes/api.py:229
msgid "Barcode associated with Stock Item"
msgstr ""
@@ -641,18 +641,18 @@ msgstr ""
msgid "Confirm build cancellation"
msgstr ""
-#: build/models.py:133
+#: build/models.py:135
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:139 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:676 templates/js/translated/stock.js:2422
+#: templates/js/translated/build.js:677 templates/js/translated/stock.js:2378
msgid "Build Order"
msgstr ""
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:140 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:92
#: order/templates/order/so_sidebar.html:13
@@ -662,41 +662,41 @@ msgstr ""
msgid "Build Orders"
msgstr ""
-#: build/models.py:198
+#: build/models.py:200
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:213 order/models.py:563
-#: order/models.py:843 part/models.py:2716
+#: build/models.py:201 order/models.py:213 order/models.py:563
+#: order/models.py:843 part/models.py:2731
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:772 templates/js/translated/build.js:1401
-#: templates/js/translated/order.js:1136 templates/js/translated/order.js:2261
+#: templates/js/translated/bom.js:770 templates/js/translated/build.js:1402
+#: templates/js/translated/order.js:1223 templates/js/translated/order.js:2349
msgid "Reference"
msgstr ""
-#: build/models.py:210
+#: build/models.py:212
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:219 build/templates/build/build_base.html:169
+#: build/models.py:221 build/templates/build/build_base.html:169
#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:222
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:225 build/templates/build/build_base.html:77
+#: build/models.py:227 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
#: order/models.py:912 order/models.py:986
#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359
-#: part/models.py:2249 part/models.py:2265 part/models.py:2284
-#: part/models.py:2301 part/models.py:2403 part/models.py:2525
-#: part/models.py:2615 part/models.py:2691 part/models.py:2998
-#: part/serializers.py:666 part/templates/part/part_app_base.html:8
+#: part/models.py:2263 part/models.py:2279 part/models.py:2298
+#: part/models.py:2315 part/models.py:2417 part/models.py:2539
+#: part/models.py:2629 part/models.py:2706 part/models.py:3013
+#: part/serializers.py:669 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: part/templates/part/upload_bom.html:52
@@ -707,231 +707,231 @@ msgstr ""
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551
-#: templates/js/translated/bom.js:730 templates/js/translated/build.js:902
-#: templates/js/translated/build.js:1270 templates/js/translated/build.js:1655
-#: templates/js/translated/build.js:1925 templates/js/translated/company.js:492
+#: templates/js/translated/bom.js:728 templates/js/translated/build.js:903
+#: templates/js/translated/build.js:1271 templates/js/translated/build.js:1666
+#: templates/js/translated/build.js:1978 templates/js/translated/company.js:492
#: templates/js/translated/company.js:749 templates/js/translated/order.js:84
-#: templates/js/translated/order.js:651 templates/js/translated/order.js:1090
-#: templates/js/translated/order.js:1693 templates/js/translated/order.js:2050
-#: templates/js/translated/order.js:2245 templates/js/translated/part.js:1006
-#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1254
-#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1657
-#: templates/js/translated/stock.js:2892 templates/js/translated/stock.js:2991
+#: templates/js/translated/order.js:711 templates/js/translated/order.js:1177
+#: templates/js/translated/order.js:1781 templates/js/translated/order.js:2138
+#: templates/js/translated/order.js:2333 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1088 templates/js/translated/part.js:1255
+#: templates/js/translated/stock.js:518 templates/js/translated/stock.js:683
+#: templates/js/translated/stock.js:890 templates/js/translated/stock.js:1613
+#: templates/js/translated/stock.js:2848 templates/js/translated/stock.js:2947
msgid "Part"
msgstr ""
-#: build/models.py:233
+#: build/models.py:235
msgid "Select part to build"
msgstr ""
-#: build/models.py:238
+#: build/models.py:240
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:242
+#: build/models.py:244
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 templates/js/translated/build.js:1643
-#: templates/js/translated/order.js:1681
+#: build/models.py:249 build/serializers.py:729
+#: templates/js/translated/build.js:1654 templates/js/translated/order.js:1769
msgid "Source Location"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:256
+#: build/models.py:258
msgid "Destination Location"
msgstr ""
-#: build/models.py:260
+#: build/models.py:262
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:264
+#: build/models.py:266
msgid "Build Quantity"
msgstr ""
-#: build/models.py:267
+#: build/models.py:269
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:271
+#: build/models.py:273
msgid "Completed items"
msgstr ""
-#: build/models.py:273
+#: build/models.py:275
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:277 part/templates/part/part_base.html:234
+#: build/models.py:279 part/templates/part/part_base.html:234
msgid "Build Status"
msgstr ""
-#: build/models.py:281
+#: build/models.py:283
msgid "Build status code"
msgstr ""
-#: build/models.py:285 build/serializers.py:218 order/serializers.py:272
-#: stock/models.py:570 templates/js/translated/order.js:513
+#: build/models.py:287 build/serializers.py:218 order/serializers.py:272
+#: stock/models.py:622 templates/js/translated/order.js:573
msgid "Batch Code"
msgstr ""
-#: build/models.py:289 build/serializers.py:219
+#: build/models.py:291 build/serializers.py:219
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:129 part/models.py:999
-#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1379
+#: build/models.py:294 order/models.py:129 part/models.py:999
+#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1467
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:585
+#: build/models.py:298 order/models.py:585
msgid "Target completion date"
msgstr ""
-#: build/models.py:297
+#: build/models.py:299
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:255
-#: templates/js/translated/build.js:2002
+#: build/models.py:302 order/models.py:255
+#: templates/js/translated/build.js:2055
msgid "Completion Date"
msgstr ""
-#: build/models.py:306
+#: build/models.py:308
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:1970
+#: build/models.py:316 templates/js/translated/build.js:2023
msgid "Issued by"
msgstr ""
-#: build/models.py:315
+#: build/models.py:317
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:323 build/templates/build/build_base.html:190
+#: build/models.py:325 build/templates/build/build_base.html:190
#: build/templates/build/detail.html:116 order/models.py:143
#: order/templates/order/order_base.html:170
#: order/templates/order/sales_order_base.html:182 part/models.py:1003
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1982 templates/js/translated/order.js:945
+#: templates/js/translated/build.js:2035 templates/js/translated/order.js:1005
msgid "Responsible"
msgstr ""
-#: build/models.py:324
+#: build/models.py:326
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:329 build/templates/build/detail.html:102
+#: build/models.py:331 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:564
+#: part/templates/part/part_base.html:354 stock/models.py:616
#: stock/templates/stock/item_base.html:352
msgid "External Link"
msgstr "외부 링크"
-#: build/models.py:334 build/serializers.py:381
+#: build/models.py:336 build/serializers.py:381
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
#: order/models.py:147 order/models.py:845 order/models.py:1107
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/models.py:988
-#: part/templates/part/detail.html:146 part/templates/part/part_sidebar.html:57
+#: part/templates/part/detail.html:141 part/templates/part/part_sidebar.html:57
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:137 stock/forms.py:171 stock/models.py:636
-#: stock/models.py:1971 stock/models.py:2077 stock/serializers.py:332
+#: stock/forms.py:137 stock/forms.py:171 stock/models.py:688
+#: stock/models.py:2023 stock/models.py:2129 stock/serializers.py:332
#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:936
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1257
-#: templates/js/translated/order.js:1562 templates/js/translated/order.js:2419
-#: templates/js/translated/stock.js:1344 templates/js/translated/stock.js:1935
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934
+#: templates/js/translated/company.js:845 templates/js/translated/order.js:1344
+#: templates/js/translated/order.js:1650 templates/js/translated/order.js:2507
+#: templates/js/translated/stock.js:1300 templates/js/translated/stock.js:1891
msgid "Notes"
msgstr ""
-#: build/models.py:335
+#: build/models.py:337
msgid "Extra build notes"
msgstr ""
-#: build/models.py:748
+#: build/models.py:750
msgid "No build output specified"
msgstr ""
-#: build/models.py:751
+#: build/models.py:753
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:754
+#: build/models.py:756
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1060
+#: build/models.py:1162
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1069
+#: build/models.py:1171
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1079
+#: build/models.py:1181
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1085 order/models.py:1225
+#: build/models.py:1187 order/models.py:1225
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1091
+#: build/models.py:1193
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1148
+#: build/models.py:1250
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1217 stock/templates/stock/item_base.html:324
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898
+#: build/models.py:1319 stock/templates/stock/item_base.html:324
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1951
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1218
+#: build/models.py:1320
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1234 build/serializers.py:576 order/serializers.py:783
+#: build/models.py:1336 build/serializers.py:576 order/serializers.py:783
#: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635
#: stock/serializers.py:753 stock/templates/stock/item_base.html:9
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:346
-#: templates/js/translated/build.js:687 templates/js/translated/build.js:692
-#: templates/js/translated/build.js:1657 templates/js/translated/build.js:2050
-#: templates/js/translated/order.js:85 templates/js/translated/order.js:1694
-#: templates/js/translated/order.js:1949 templates/js/translated/order.js:1954
-#: templates/js/translated/order.js:2057 templates/js/translated/order.js:2147
-#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728
-#: templates/js/translated/stock.js:2753
+#: templates/js/translated/build.js:688 templates/js/translated/build.js:693
+#: templates/js/translated/build.js:1668 templates/js/translated/build.js:2103
+#: templates/js/translated/order.js:85 templates/js/translated/order.js:1782
+#: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:2235
+#: templates/js/translated/stock.js:519 templates/js/translated/stock.js:684
+#: templates/js/translated/stock.js:2709
msgid "Stock Item"
msgstr ""
-#: build/models.py:1235
+#: build/models.py:1337
msgid "Source stock item"
msgstr ""
-#: build/models.py:1247 build/serializers.py:188
+#: build/models.py:1349 build/serializers.py:188
#: build/templates/build/build_base.html:82
#: build/templates/build/detail.html:35 common/models.py:1317
#: company/forms.py:42 company/templates/company/supplier_part.html:251
#: order/models.py:836 order/models.py:1265 order/serializers.py:903
#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144
-#: part/forms.py:160 part/forms.py:176 part/models.py:2707
-#: part/templates/part/detail.html:1008 part/templates/part/detail.html:1094
+#: part/forms.py:160 part/forms.py:176 part/models.py:2722
+#: part/templates/part/detail.html:994 part/templates/part/detail.html:1080
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_build_order_base.html:114
@@ -943,32 +943,32 @@ msgstr ""
#: stock/templates/stock/item_base.html:176
#: stock/templates/stock/item_base.html:241
#: stock/templates/stock/item_base.html:249
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:780
-#: templates/js/translated/build.js:375 templates/js/translated/build.js:523
-#: templates/js/translated/build.js:714 templates/js/translated/build.js:911
-#: templates/js/translated/build.js:921 templates/js/translated/build.js:1297
-#: templates/js/translated/build.js:1658
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778
+#: templates/js/translated/build.js:376 templates/js/translated/build.js:524
+#: templates/js/translated/build.js:715 templates/js/translated/build.js:912
+#: templates/js/translated/build.js:922 templates/js/translated/build.js:1298
+#: templates/js/translated/build.js:1669
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:101 templates/js/translated/order.js:1142
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:1976
-#: templates/js/translated/order.js:2064 templates/js/translated/order.js:2153
-#: templates/js/translated/order.js:2267 templates/js/translated/part.js:906
-#: templates/js/translated/part.js:1884 templates/js/translated/part.js:2007
-#: templates/js/translated/part.js:2085 templates/js/translated/stock.js:391
-#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758
-#: templates/js/translated/stock.js:2802 templates/js/translated/stock.js:2904
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:1229
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:2064
+#: templates/js/translated/order.js:2152 templates/js/translated/order.js:2241
+#: templates/js/translated/order.js:2355 templates/js/translated/part.js:907
+#: templates/js/translated/part.js:1885 templates/js/translated/part.js:2008
+#: templates/js/translated/part.js:2086 templates/js/translated/stock.js:390
+#: templates/js/translated/stock.js:544 templates/js/translated/stock.js:714
+#: templates/js/translated/stock.js:2758 templates/js/translated/stock.js:2860
msgid "Quantity"
msgstr "수량"
-#: build/models.py:1248
+#: build/models.py:1350
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1256
+#: build/models.py:1358
msgid "Install into"
msgstr ""
-#: build/models.py:1257
+#: build/models.py:1359
msgid "Destination stock item"
msgstr ""
@@ -997,8 +997,8 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:201 build/serializers.py:596 order/models.py:280
-#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:826
-#: stock/models.py:404 stock/models.py:1180 stock/serializers.py:305
+#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:836
+#: stock/models.py:456 stock/models.py:1232 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr "수량 값은 0보다 커야 합니다"
@@ -1012,8 +1012,8 @@ msgstr ""
#: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907
#: stock/forms.py:78 stock/serializers.py:314
-#: templates/js/translated/order.js:524 templates/js/translated/stock.js:238
-#: templates/js/translated/stock.js:392
+#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237
+#: templates/js/translated/stock.js:391
msgid "Serial Numbers"
msgstr "일련번호"
@@ -1029,7 +1029,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:275 stock/api.py:549
+#: build/serializers.py:275 stock/api.py:551
msgid "The following serial numbers already exist"
msgstr ""
@@ -1041,13 +1041,13 @@ msgstr ""
#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788
#: stock/serializers.py:1029 stock/templates/stock/item_base.html:292
#: templates/js/translated/barcode.js:384
-#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:699
-#: templates/js/translated/build.js:1309 templates/js/translated/order.js:551
-#: templates/js/translated/order.js:1961 templates/js/translated/order.js:2072
-#: templates/js/translated/order.js:2080 templates/js/translated/order.js:2161
-#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564
-#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936
-#: templates/js/translated/stock.js:1807 templates/js/translated/stock.js:2694
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700
+#: templates/js/translated/build.js:1310 templates/js/translated/order.js:611
+#: templates/js/translated/order.js:2049 templates/js/translated/order.js:2160
+#: templates/js/translated/order.js:2168 templates/js/translated/order.js:2249
+#: templates/js/translated/part.js:179 templates/js/translated/stock.js:520
+#: templates/js/translated/stock.js:685 templates/js/translated/stock.js:892
+#: templates/js/translated/stock.js:1763 templates/js/translated/stock.js:2650
msgid "Location"
msgstr "위치"
@@ -1058,10 +1058,10 @@ msgstr ""
#: build/serializers.py:377 build/templates/build/build_base.html:142
#: build/templates/build/detail.html:63 order/models.py:579
#: order/serializers.py:290 stock/templates/stock/item_base.html:182
-#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1954
-#: templates/js/translated/order.js:656 templates/js/translated/order.js:915
-#: templates/js/translated/order.js:1371 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2771 templates/js/translated/stock.js:2920
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2007
+#: templates/js/translated/order.js:716 templates/js/translated/order.js:975
+#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2727 templates/js/translated/stock.js:2876
msgid "Status"
msgstr "상태"
@@ -1073,7 +1073,7 @@ msgstr ""
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:445 templates/js/translated/build.js:150
+#: build/serializers.py:445 templates/js/translated/build.js:151
msgid "Required stock has not been fully allocated"
msgstr ""
@@ -1085,7 +1085,7 @@ msgstr ""
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:461 templates/js/translated/build.js:154
+#: build/serializers.py:461 templates/js/translated/build.js:155
msgid "Required build quantity has not been completed"
msgstr ""
@@ -1097,8 +1097,8 @@ msgstr ""
msgid "No build outputs have been created for this build order"
msgstr ""
-#: build/serializers.py:501 build/serializers.py:550 part/models.py:2831
-#: part/models.py:2990
+#: build/serializers.py:501 build/serializers.py:550 part/models.py:2846
+#: part/models.py:3005
msgid "BOM Item"
msgstr ""
@@ -1135,6 +1135,26 @@ msgstr ""
msgid "Allocation items must be provided"
msgstr ""
+#: build/serializers.py:730
+msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
+msgstr ""
+
+#: build/serializers.py:735
+msgid "Interchangeable Stock"
+msgstr ""
+
+#: build/serializers.py:736
+msgid "Stock items in multiple locations can be used interchangeably"
+msgstr ""
+
+#: build/serializers.py:741
+msgid "Substitute Stock"
+msgstr ""
+
+#: build/serializers.py:742
+msgid "Allow allocation of substitute parts"
+msgstr ""
+
#: build/tasks.py:98
msgid "Stock required for build order"
msgstr ""
@@ -1206,9 +1226,9 @@ msgstr ""
#: order/templates/order/order_base.html:156
#: order/templates/order/sales_order_base.html:163
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1994 templates/js/translated/order.js:932
-#: templates/js/translated/order.js:1204 templates/js/translated/order.js:1387
-#: templates/js/translated/order.js:2330 templates/js/translated/part.js:910
+#: templates/js/translated/build.js:2047 templates/js/translated/order.js:992
+#: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475
+#: templates/js/translated/order.js:2418 templates/js/translated/part.js:911
msgid "Target Date"
msgstr ""
@@ -1230,7 +1250,7 @@ msgstr ""
#: build/templates/build/build_base.html:163
#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
#: order/templates/order/sales_order_base.html:170
-#: templates/js/translated/build.js:1940
+#: templates/js/translated/build.js:1993
#: templates/js/translated/table_filters.js:365
msgid "Completed"
msgstr ""
@@ -1242,7 +1262,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:286
-#: templates/js/translated/order.js:1326 templates/js/translated/stock.js:2436
+#: templates/js/translated/order.js:1414 templates/js/translated/stock.js:2392
msgid "Sales Order"
msgstr ""
@@ -1277,7 +1297,7 @@ msgid "Stock can be taken from any available location."
msgstr ""
#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133
-#: templates/js/translated/order.js:657 templates/js/translated/order.js:1246
+#: templates/js/translated/order.js:717 templates/js/translated/order.js:1333
msgid "Destination"
msgstr ""
@@ -1285,13 +1305,13 @@ msgstr ""
msgid "Destination location not specified"
msgstr ""
-#: build/templates/build/detail.html:74 templates/js/translated/build.js:929
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:930
msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:310
-#: templates/js/translated/stock.js:1796 templates/js/translated/stock.js:2927
+#: templates/js/translated/stock.js:1752 templates/js/translated/stock.js:2883
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:238
msgid "Batch"
@@ -1300,7 +1320,7 @@ msgstr ""
#: build/templates/build/detail.html:127
#: order/templates/order/order_base.html:143
#: order/templates/order/sales_order_base.html:157
-#: templates/js/translated/build.js:1962
+#: templates/js/translated/build.js:2015
msgid "Created"
msgstr ""
@@ -1320,7 +1340,7 @@ msgstr ""
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:177 templates/js/translated/build.js:1484
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1485
msgid "Unallocate stock"
msgstr ""
@@ -1329,111 +1349,119 @@ msgid "Unallocate Stock"
msgstr ""
#: build/templates/build/detail.html:180
-msgid "Allocate stock to build"
+msgid "Automatically allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
+#: build/templates/build/detail.html:181
+msgid "Auto Allocate"
+msgstr ""
+
+#: build/templates/build/detail.html:183
+msgid "Manually allocate stock to build"
+msgstr ""
+
+#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8
msgid "Allocate Stock"
msgstr ""
-#: build/templates/build/detail.html:184
+#: build/templates/build/detail.html:187
msgid "Order required parts"
msgstr ""
-#: build/templates/build/detail.html:185
+#: build/templates/build/detail.html:188
#: company/templates/company/detail.html:38
#: company/templates/company/detail.html:85 order/views.py:463
-#: part/templates/part/category.html:177
+#: part/templates/part/category.html:174
msgid "Order Parts"
msgstr ""
-#: build/templates/build/detail.html:197
+#: build/templates/build/detail.html:200
msgid "Untracked stock has been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:201
+#: build/templates/build/detail.html:204
msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:208
+#: build/templates/build/detail.html:211
msgid "Allocate selected items"
msgstr ""
-#: build/templates/build/detail.html:218
+#: build/templates/build/detail.html:221
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:230
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:231
+#: build/templates/build/detail.html:234
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:232
+#: build/templates/build/detail.html:235
msgid "New Build Output"
msgstr ""
-#: build/templates/build/detail.html:246
+#: build/templates/build/detail.html:249
msgid "Output Actions"
msgstr ""
-#: build/templates/build/detail.html:250
+#: build/templates/build/detail.html:253
msgid "Complete selected build outputs"
msgstr ""
-#: build/templates/build/detail.html:251
+#: build/templates/build/detail.html:254
msgid "Complete outputs"
msgstr ""
-#: build/templates/build/detail.html:253
+#: build/templates/build/detail.html:256
msgid "Delete selected build outputs"
msgstr ""
-#: build/templates/build/detail.html:254
+#: build/templates/build/detail.html:257
msgid "Delete outputs"
msgstr ""
-#: build/templates/build/detail.html:270
+#: build/templates/build/detail.html:273
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19
+#: build/templates/build/detail.html:285 build/templates/build/sidebar.html:19
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:107
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:222
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217
#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:105
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:298
+#: build/templates/build/detail.html:301
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:302 build/templates/build/detail.html:478
-#: company/templates/company/detail.html:188
-#: company/templates/company/detail.html:215
+#: build/templates/build/detail.html:305 build/templates/build/detail.html:481
+#: company/templates/company/detail.html:190
+#: company/templates/company/detail.html:217
#: order/templates/order/purchase_order_detail.html:80
#: order/templates/order/purchase_order_detail.html:108
#: order/templates/order/sales_order_detail.html:127
#: order/templates/order/sales_order_detail.html:186
-#: part/templates/part/detail.html:150 stock/templates/stock/item.html:125
+#: part/templates/part/detail.html:145 stock/templates/stock/item.html:125
#: stock/templates/stock/item.html:223
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:519
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:520
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:329
+#: build/templates/build/index.html:18 part/templates/part/detail.html:322
msgid "New Build Order"
msgstr ""
@@ -1658,7 +1686,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:732 part/models.py:2527 report/models.py:187
+#: common/models.py:732 part/models.py:2541 report/models.py:187
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:417
msgid "Template"
@@ -1668,7 +1696,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:739 part/models.py:951 templates/js/translated/bom.js:1300
+#: common/models.py:739 part/models.py:951 templates/js/translated/bom.js:1305
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:429
msgid "Assembly"
@@ -2243,7 +2271,7 @@ msgstr ""
#: common/models.py:1325 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:937 templates/js/translated/part.js:1889
+#: templates/js/translated/part.js:938 templates/js/translated/part.js:1890
msgid "Price"
msgstr ""
@@ -2337,14 +2365,14 @@ msgstr ""
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
-#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:210
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208
#: templates/patterns/wizard/upload.html:35
msgid "Upload File"
msgstr "파일 업로드"
#: common/views.py:94 order/views.py:244
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:211
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:209
#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
@@ -2472,7 +2500,7 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:508
+#: company/models.py:320 company/models.py:535 stock/models.py:560
#: stock/templates/stock/item_base.html:137 templates/js/translated/bom.js:541
msgid "Base Part"
msgstr ""
@@ -2499,8 +2527,8 @@ msgstr ""
#: company/models.py:342 company/templates/company/manufacturer_part.html:96
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1124
-#: templates/js/translated/part.js:245 templates/js/translated/part.js:895
+#: templates/js/translated/company.js:818 templates/js/translated/order.js:1211
+#: templates/js/translated/part.js:245 templates/js/translated/part.js:896
msgid "MPN"
msgstr ""
@@ -2529,8 +2557,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2064 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1331
+#: stock/models.py:2116 templates/js/translated/company.js:647
+#: templates/js/translated/part.js:716 templates/js/translated/stock.js:1287
msgid "Value"
msgstr ""
@@ -2538,10 +2566,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:945 part/models.py:2495
+#: company/models.py:429 part/models.py:945 part/models.py:2509
#: part/templates/part/part_base.html:288
#: templates/InvenTree/settings/settings.html:324
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:721
+#: templates/js/translated/company.js:653 templates/js/translated/part.js:722
msgid "Units"
msgstr ""
@@ -2559,8 +2587,8 @@ msgstr ""
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237
#: part/bom.py:265 stock/templates/stock/item_base.html:376
#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:898
-#: templates/js/translated/part.js:215 templates/js/translated/part.js:863
+#: templates/js/translated/company.js:774 templates/js/translated/order.js:958
+#: templates/js/translated/part.js:215 templates/js/translated/part.js:864
#: templates/js/translated/table_filters.js:388
msgid "Supplier"
msgstr ""
@@ -2570,8 +2598,8 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1111
-#: templates/js/translated/part.js:226 templates/js/translated/part.js:881
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198
+#: templates/js/translated/part.js:226 templates/js/translated/part.js:882
msgid "SKU"
msgstr "SKU"
@@ -2592,7 +2620,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:119
-#: part/models.py:2719 part/templates/part/upload_bom.html:59
+#: part/models.py:2734 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409
msgid "Note"
@@ -2607,8 +2635,8 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:532 stock/templates/stock/item_base.html:317
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1931
+#: stock/models.py:584 stock/templates/stock/item_base.html:317
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1887
msgid "Packaging"
msgstr ""
@@ -2676,11 +2704,11 @@ msgid "Download image from URL"
msgstr "URL에서 이미지 다운로드"
#: company/templates/company/company_base.html:83 order/models.py:574
-#: order/templates/order/sales_order_base.html:115 stock/models.py:551
-#: stock/models.py:552 stock/serializers.py:683
+#: order/templates/order/sales_order_base.html:115 stock/models.py:603
+#: stock/models.py:604 stock/serializers.py:683
#: stock/templates/stock/item_base.html:269
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1348
-#: templates/js/translated/stock.js:2735
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1436
+#: templates/js/translated/stock.js:2691
#: templates/js/translated/table_filters.js:392
msgid "Customer"
msgstr "고객"
@@ -2711,7 +2739,7 @@ msgstr ""
#: company/templates/company/detail.html:20
#: company/templates/company/manufacturer_part.html:118
-#: part/templates/part/detail.html:367
+#: part/templates/part/detail.html:360
msgid "New Supplier Part"
msgstr ""
@@ -2719,14 +2747,14 @@ msgstr ""
#: company/templates/company/detail.html:79
#: company/templates/company/manufacturer_part.html:127
#: company/templates/company/manufacturer_part.html:156
-#: part/templates/part/category.html:171 part/templates/part/detail.html:376
-#: part/templates/part/detail.html:405
+#: part/templates/part/category.html:168 part/templates/part/detail.html:369
+#: part/templates/part/detail.html:398
msgid "Options"
msgstr ""
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177
+#: part/templates/part/category.html:174
msgid "Order parts"
msgstr ""
@@ -2748,7 +2776,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:395
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:388
msgid "New Manufacturer Part"
msgstr ""
@@ -2762,7 +2790,7 @@ msgstr ""
#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:40
+#: part/templates/part/detail.html:80 part/templates/part/part_sidebar.html:40
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
@@ -2784,7 +2812,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:44
+#: part/templates/part/detail.html:103 part/templates/part/part_sidebar.html:44
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
@@ -2802,23 +2830,23 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/detail.html:168
-#: templates/js/translated/build.js:1281
+#: templates/js/translated/build.js:1282
msgid "Assigned Stock"
msgstr ""
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:186
msgid "Company Notes"
msgstr ""
-#: company/templates/company/detail.html:384
+#: company/templates/company/detail.html:380
#: company/templates/company/manufacturer_part.html:215
-#: part/templates/part/detail.html:449
+#: part/templates/part/detail.html:442
msgid "Delete Supplier Parts?"
msgstr ""
-#: company/templates/company/detail.html:385
+#: company/templates/company/detail.html:381
#: company/templates/company/manufacturer_part.html:216
-#: part/templates/part/detail.html:450
+#: part/templates/part/detail.html:443
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2835,7 +2863,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:34
#: company/templates/company/supplier_part.html:159
-#: part/templates/part/detail.html:88 part/templates/part/part_base.html:76
+#: part/templates/part/detail.html:83 part/templates/part/part_base.html:76
msgid "Order part"
msgstr ""
@@ -2862,14 +2890,14 @@ msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
-#: part/templates/part/detail.html:378
+#: part/templates/part/detail.html:371
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
#: company/templates/company/manufacturer_part.html:158
#: company/templates/company/manufacturer_part.html:254
-#: part/templates/part/detail.html:378 part/templates/part/detail.html:407
+#: part/templates/part/detail.html:371 part/templates/part/detail.html:400
#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31
#: users/models.py:217
msgid "Delete"
@@ -2878,12 +2906,12 @@ msgstr "삭제"
#: company/templates/company/manufacturer_part.html:143
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:17
-#: part/templates/part/detail.html:196 part/templates/part/part_sidebar.html:9
+#: part/templates/part/detail.html:191 part/templates/part/part_sidebar.html:9
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:147
-#: part/templates/part/detail.html:201
+#: part/templates/part/detail.html:196
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:66
msgid "New Parameter"
@@ -2894,7 +2922,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:191
-#: part/templates/part/detail.html:908
+#: part/templates/part/detail.html:894
msgid "Add Parameter"
msgstr ""
@@ -2923,9 +2951,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:516
+#: company/templates/company/supplier_part.html:24 stock/models.py:568
#: stock/templates/stock/item_base.html:381
-#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1888
+#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1844
msgid "Supplier Part"
msgstr ""
@@ -2951,7 +2979,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:166
-#: templates/js/translated/stock.js:368
+#: templates/js/translated/stock.js:367
msgid "New Stock Item"
msgstr ""
@@ -2961,7 +2989,7 @@ msgid "Supplier Part Orders"
msgstr ""
#: company/templates/company/supplier_part.html:160
-#: part/templates/part/detail.html:89
+#: part/templates/part/detail.html:84
msgid "Order Part"
msgstr ""
@@ -2972,7 +3000,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1319
+#: part/templates/part/prices.html:271 part/views.py:1254
msgid "Add Price Break"
msgstr ""
@@ -2980,11 +3008,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1381
+#: company/templates/company/supplier_part.html:224 part/views.py:1316
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1367
+#: company/templates/company/supplier_part.html:238 part/views.py:1302
msgid "Edit Price Break"
msgstr ""
@@ -3002,10 +3030,10 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:150
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/bom.js:553 templates/js/translated/part.js:495
-#: templates/js/translated/part.js:630 templates/js/translated/part.js:1147
-#: templates/js/translated/part.js:1308 templates/js/translated/stock.js:935
-#: templates/js/translated/stock.js:1711 templates/navbar.html:28
+#: templates/js/translated/bom.js:553 templates/js/translated/part.js:496
+#: templates/js/translated/part.js:631 templates/js/translated/part.js:1148
+#: templates/js/translated/part.js:1309 templates/js/translated/stock.js:891
+#: templates/js/translated/stock.js:1667 templates/navbar.html:28
msgid "Stock"
msgstr ""
@@ -3028,7 +3056,7 @@ msgstr ""
#: stock/templates/stock/location.html:150
#: stock/templates/stock/location.html:162
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2641
+#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2597
#: templates/stats.html:105 templates/stats.html:114 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -3058,20 +3086,20 @@ msgstr ""
msgid "New Company"
msgstr "새 회사"
-#: company/views.py:129 part/views.py:591
+#: company/views.py:129 part/views.py:589
msgid "Download Image"
msgstr "이미지 다운로드"
-#: company/views.py:158 part/views.py:623
+#: company/views.py:158 part/views.py:621
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:630
+#: company/views.py:165 part/views.py:628
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:639
+#: company/views.py:174 part/views.py:637
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3190,7 +3218,7 @@ msgid "Company from which the items are being ordered"
msgstr ""
#: order/models.py:231 order/templates/order/order_base.html:118
-#: templates/js/translated/order.js:907
+#: templates/js/translated/order.js:967
msgid "Supplier Reference"
msgstr ""
@@ -3247,7 +3275,7 @@ msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
#: order/models.py:589 order/models.py:1084
-#: templates/js/translated/order.js:1395 templates/js/translated/order.js:1546
+#: templates/js/translated/order.js:1483 templates/js/translated/order.js:1634
msgid "Shipment Date"
msgstr ""
@@ -3292,7 +3320,7 @@ msgid "Supplier part must match supplier"
msgstr ""
#: order/models.py:891 order/models.py:982 order/models.py:1078
-#: templates/js/translated/order.js:1937 templates/js/translated/stock.js:2403
+#: templates/js/translated/order.js:2025 templates/js/translated/stock.js:2359
msgid "Order"
msgstr ""
@@ -3300,8 +3328,8 @@ msgstr ""
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:331
-#: templates/js/translated/order.js:876 templates/js/translated/part.js:838
-#: templates/js/translated/stock.js:1865 templates/js/translated/stock.js:2716
+#: templates/js/translated/order.js:936 templates/js/translated/part.js:839
+#: templates/js/translated/stock.js:1821 templates/js/translated/stock.js:2672
msgid "Purchase Order"
msgstr ""
@@ -3310,8 +3338,8 @@ msgid "Supplier part"
msgstr ""
#: order/models.py:920 order/templates/order/order_base.html:163
-#: templates/js/translated/order.js:654 templates/js/translated/order.js:1226
-#: templates/js/translated/part.js:932 templates/js/translated/part.js:959
+#: templates/js/translated/order.js:714 templates/js/translated/order.js:1313
+#: templates/js/translated/part.js:933 templates/js/translated/part.js:960
#: templates/js/translated/table_filters.js:312
msgid "Received"
msgstr ""
@@ -3320,9 +3348,9 @@ msgstr ""
msgid "Number of items received"
msgstr ""
-#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:645
+#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:697
#: stock/serializers.py:170 stock/templates/stock/item_base.html:338
-#: templates/js/translated/stock.js:1919
+#: templates/js/translated/stock.js:1875
msgid "Purchase Price"
msgstr ""
@@ -3456,11 +3484,11 @@ msgstr ""
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:273 templates/js/translated/order.js:514
+#: order/serializers.py:273 templates/js/translated/order.js:574
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:281 templates/js/translated/order.js:525
+#: order/serializers.py:281 templates/js/translated/order.js:585
msgid "Enter serial numbers for incoming stock items"
msgstr ""
@@ -3578,7 +3606,7 @@ msgstr ""
#: order/templates/order/order_base.html:94
#: order/templates/order/sales_order_base.html:89
-#: templates/js/translated/stock.js:2459
+#: templates/js/translated/stock.js:2415
msgid "Order Status"
msgstr ""
@@ -3650,10 +3678,10 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/bom.js:76 templates/js/translated/build.js:380
-#: templates/js/translated/build.js:528 templates/js/translated/build.js:1547
-#: templates/js/translated/order.js:602 templates/js/translated/order.js:1605
-#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769
+#: templates/js/translated/bom.js:76 templates/js/translated/build.js:381
+#: templates/js/translated/build.js:529 templates/js/translated/build.js:1558
+#: templates/js/translated/order.js:662 templates/js/translated/order.js:1693
+#: templates/js/translated/stock.js:557 templates/js/translated/stock.js:725
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr ""
@@ -3717,8 +3745,8 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:940 templates/js/translated/order.js:1403
-#: templates/js/translated/order.js:1533
+#: templates/js/translated/order.js:1000 templates/js/translated/order.js:1491
+#: templates/js/translated/order.js:1621
msgid "Items"
msgstr ""
@@ -3752,9 +3780,9 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:27
-#: order/templates/order/purchase_order_detail.html:182
+#: order/templates/order/purchase_order_detail.html:166
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:245
+#: order/templates/order/sales_order_detail.html:233
msgid "Add Line Item"
msgstr ""
@@ -3794,7 +3822,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:122
-#: templates/js/translated/order.js:1361
+#: templates/js/translated/order.js:1449
msgid "Customer Reference"
msgstr ""
@@ -3827,7 +3855,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:48
-#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1465
+#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1466
msgid "Actions"
msgstr ""
@@ -3902,31 +3930,31 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:499
+#: part/api.py:502
msgid "Valid"
msgstr ""
-#: part/api.py:500
+#: part/api.py:503
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:505
+#: part/api.py:508
msgid "This option must be selected"
msgstr ""
-#: part/api.py:847
+#: part/api.py:866
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:851
+#: part/api.py:870
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:866
+#: part/api.py:885
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:897 part/api.py:901 part/api.py:916 part/api.py:920
+#: part/api.py:916 part/api.py:920 part/api.py:935 part/api.py:939
msgid "This field is required"
msgstr ""
@@ -3944,7 +3972,7 @@ msgid "Available Stock"
msgstr ""
#: part/bom.py:128 part/templates/part/part_base.html:203
-#: templates/js/translated/part.js:1323
+#: templates/js/translated/part.js:1324
msgid "On Order"
msgstr ""
@@ -3976,7 +4004,7 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:97 part/models.py:2571 part/templates/part/category.html:15
+#: part/models.py:97 part/models.py:2585 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -3993,7 +4021,7 @@ msgstr ""
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:37
-#: templates/js/translated/part.js:1685 templates/navbar.html:21
+#: templates/js/translated/part.js:1686 templates/navbar.html:21
#: templates/stats.html:92 templates/stats.html:101 users/models.py:41
msgid "Parts"
msgstr ""
@@ -4023,7 +4051,7 @@ msgstr ""
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:803 part/models.py:2624
+#: part/models.py:803 part/models.py:2638
msgid "Part name"
msgstr ""
@@ -4056,11 +4084,11 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:841 part/models.py:2321 part/models.py:2570
+#: part/models.py:841 part/models.py:2335 part/models.py:2584
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:223
-#: templates/js/translated/part.js:1290
+#: templates/js/translated/part.js:1291
msgid "Category"
msgstr ""
@@ -4069,8 +4097,8 @@ msgid "Part category"
msgstr ""
#: part/models.py:847 part/templates/part/part_base.html:274
-#: templates/js/translated/part.js:618 templates/js/translated/part.js:1243
-#: templates/js/translated/stock.js:1683
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:1244
+#: templates/js/translated/stock.js:1639
msgid "IPN"
msgstr ""
@@ -4083,7 +4111,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:855 part/templates/part/part_base.html:281
-#: report/models.py:200 templates/js/translated/part.js:622
+#: report/models.py:200 templates/js/translated/part.js:623
msgid "Revision"
msgstr ""
@@ -4175,301 +4203,309 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2371
+#: part/models.py:2385
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2388
+#: part/models.py:2402
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2408 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:1311
+#: part/models.py:2422 templates/js/translated/part.js:1737
+#: templates/js/translated/stock.js:1267
msgid "Test Name"
msgstr ""
-#: part/models.py:2409
+#: part/models.py:2423
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2414
+#: part/models.py:2428
msgid "Test Description"
msgstr ""
-#: part/models.py:2415
+#: part/models.py:2429
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2420 templates/js/translated/part.js:1745
+#: part/models.py:2434 templates/js/translated/part.js:1746
#: templates/js/translated/table_filters.js:276
msgid "Required"
msgstr ""
-#: part/models.py:2421
+#: part/models.py:2435
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2426 templates/js/translated/part.js:1753
+#: part/models.py:2440 templates/js/translated/part.js:1754
msgid "Requires Value"
msgstr ""
-#: part/models.py:2427
+#: part/models.py:2441
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2432 templates/js/translated/part.js:1760
+#: part/models.py:2446 templates/js/translated/part.js:1761
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2433
+#: part/models.py:2447
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2444
+#: part/models.py:2458
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2480
+#: part/models.py:2494
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2488
+#: part/models.py:2502
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2495
+#: part/models.py:2509
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2525
+#: part/models.py:2539
msgid "Parent Part"
msgstr ""
-#: part/models.py:2527 part/models.py:2576 part/models.py:2577
+#: part/models.py:2541 part/models.py:2590 part/models.py:2591
#: templates/InvenTree/settings/settings.html:218
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2529
+#: part/models.py:2543
msgid "Data"
msgstr "데이터"
-#: part/models.py:2529
+#: part/models.py:2543
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2581 templates/InvenTree/settings/settings.html:227
+#: part/models.py:2595 templates/InvenTree/settings/settings.html:227
msgid "Default Value"
msgstr ""
-#: part/models.py:2582
+#: part/models.py:2596
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2616
+#: part/models.py:2630
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2619 templates/js/translated/model_renderers.js:182
+#: part/models.py:2633 templates/js/translated/model_renderers.js:182
msgid "Part ID"
msgstr ""
-#: part/models.py:2620
+#: part/models.py:2634
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2623
+#: part/models.py:2637
msgid "Part Name"
msgstr ""
-#: part/models.py:2627
+#: part/models.py:2641
msgid "Part IPN"
msgstr ""
-#: part/models.py:2628
+#: part/models.py:2642
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2645
msgid "Level"
msgstr ""
-#: part/models.py:2632
+#: part/models.py:2646
msgid "BOM level"
msgstr ""
-#: part/models.py:2692
+#: part/models.py:2707
msgid "Select parent part"
msgstr ""
-#: part/models.py:2700
+#: part/models.py:2715
msgid "Sub part"
msgstr ""
-#: part/models.py:2701
+#: part/models.py:2716
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2707
+#: part/models.py:2722
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2709 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:791 templates/js/translated/bom.js:865
+#: part/models.py:2724 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2709
+#: part/models.py:2724
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2712 part/templates/part/upload_bom.html:55
+#: part/models.py:2727 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2713
+#: part/models.py:2728
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2716
+#: part/models.py:2731
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2719
+#: part/models.py:2734
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2721
+#: part/models.py:2736
msgid "Checksum"
msgstr ""
-#: part/models.py:2721
+#: part/models.py:2736
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2725 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:882
+#: part/models.py:2740 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:880
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2726
+#: part/models.py:2741
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2731 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:874
+#: part/models.py:2746 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:872
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2732
+#: part/models.py:2747
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2817 stock/models.py:394
+#: part/models.py:2832 stock/models.py:446
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2826 part/models.py:2828
+#: part/models.py:2841 part/models.py:2843
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2957
+#: part/models.py:2972
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2979
+#: part/models.py:2994
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2991
+#: part/models.py:3006
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2999
+#: part/models.py:3014
msgid "Substitute part"
msgstr ""
-#: part/models.py:3010
+#: part/models.py:3025
msgid "Part 1"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3029
msgid "Part 2"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3029
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3046
+#: part/models.py:3061
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
-#: part/serializers.py:667
+#: part/serializers.py:670
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:678
+#: part/serializers.py:681
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:679
+#: part/serializers.py:682
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:684
+#: part/serializers.py:687
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:685
+#: part/serializers.py:688
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:690
+#: part/serializers.py:693
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:691
+#: part/serializers.py:694
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:699
+msgid "Copy Substitute Parts"
+msgstr ""
+
+#: part/serializers.py:700
+msgid "Copy substitute parts when duplicate BOM items"
+msgstr ""
+
+#: part/serializers.py:744
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:735
+#: part/serializers.py:745
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:762
+#: part/serializers.py:772
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:805
+#: part/serializers.py:815
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:808
+#: part/serializers.py:818
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:811
+#: part/serializers.py:821
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:820
+#: part/serializers.py:830
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:828
+#: part/serializers.py:838
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:847
+#: part/serializers.py:857
msgid "At least one BOM item is required"
msgstr ""
@@ -4496,7 +4532,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:279
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:274
msgid "BOM actions"
msgstr ""
@@ -4548,7 +4584,7 @@ msgstr ""
msgid "Top level part category"
msgstr ""
-#: part/templates/part/category.html:114 part/templates/part/category.html:205
+#: part/templates/part/category.html:114 part/templates/part/category.html:202
#: part/templates/part/category_sidebar.html:7
msgid "Subcategories"
msgstr ""
@@ -4557,55 +4593,51 @@ msgstr ""
msgid "Parts (Including subcategories)"
msgstr ""
-#: part/templates/part/category.html:156
-msgid "Export Part Data"
-msgstr ""
-
-#: part/templates/part/category.html:157 part/templates/part/category.html:181
-msgid "Export"
-msgstr ""
-
-#: part/templates/part/category.html:160
+#: part/templates/part/category.html:157
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:161 templates/js/translated/bom.js:365
+#: part/templates/part/category.html:158 templates/js/translated/bom.js:365
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:175
+#: part/templates/part/category.html:172
msgid "Set category"
msgstr ""
-#: part/templates/part/category.html:175
+#: part/templates/part/category.html:172
msgid "Set Category"
msgstr ""
-#: part/templates/part/category.html:179
+#: part/templates/part/category.html:176
msgid "Print Labels"
msgstr ""
-#: part/templates/part/category.html:181
+#: part/templates/part/category.html:178
+msgid "Export"
+msgstr ""
+
+#: part/templates/part/category.html:178
msgid "Export Data"
msgstr ""
-#: part/templates/part/category.html:195
+#: part/templates/part/category.html:192
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:288
+#: part/templates/part/category.html:285
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:315
+#: part/templates/part/category.html:305
msgid "Create Part"
msgstr ""
-#: part/templates/part/category.html:318
+#: part/templates/part/category.html:308
msgid "Create another part after this one"
msgstr ""
-#: part/templates/part/category.html:319
+#: part/templates/part/category.html:309
msgid "Part created successfully"
msgstr ""
@@ -4676,155 +4708,150 @@ msgstr ""
msgid "Part Stock"
msgstr ""
-#: part/templates/part/detail.html:33
-#, python-format
-msgid "Showing stock for all variants of %(full_name)s"
-msgstr ""
-
-#: part/templates/part/detail.html:43
+#: part/templates/part/detail.html:38
msgid "Part Stock Allocations"
msgstr ""
-#: part/templates/part/detail.html:60
+#: part/templates/part/detail.html:55
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:65
+#: part/templates/part/detail.html:60
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:122
+#: part/templates/part/detail.html:117
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:168
+#: part/templates/part/detail.html:163
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:172
+#: part/templates/part/detail.html:167
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:173
+#: part/templates/part/detail.html:168
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:200
+#: part/templates/part/detail.html:195
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:237 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:52
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:241 part/templates/part/detail.html:242
+#: part/templates/part/detail.html:236 part/templates/part/detail.html:237
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:262 part/templates/part/part_sidebar.html:18
+#: part/templates/part/detail.html:257 part/templates/part/part_sidebar.html:18
msgid "Bill of Materials"
msgstr "부품 명세서"
-#: part/templates/part/detail.html:267
+#: part/templates/part/detail.html:262
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:271 templates/js/translated/bom.js:283
+#: part/templates/part/detail.html:266 templates/js/translated/bom.js:283
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:268
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:283
+#: part/templates/part/detail.html:278
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:285 templates/js/translated/part.js:272
+#: part/templates/part/detail.html:279 templates/js/translated/part.js:272
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:287
+#: part/templates/part/detail.html:280
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:285
msgid "New BOM Item"
msgstr ""
-#: part/templates/part/detail.html:293
+#: part/templates/part/detail.html:286
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:306
+#: part/templates/part/detail.html:299
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:323
+#: part/templates/part/detail.html:316
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:348
+#: part/templates/part/detail.html:341
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:363
+#: part/templates/part/detail.html:356
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:391
+#: part/templates/part/detail.html:384
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:407
+#: part/templates/part/detail.html:400
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:589
+#: part/templates/part/detail.html:582
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:590
+#: part/templates/part/detail.html:583
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:639
+#: part/templates/part/detail.html:632
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:696
+#: part/templates/part/detail.html:689
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:704
+#: part/templates/part/detail.html:697
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:801
+#: part/templates/part/detail.html:794
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:858
+#: part/templates/part/detail.html:844
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:971
+#: part/templates/part/detail.html:957
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:983
+#: part/templates/part/detail.html:969
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:995
+#: part/templates/part/detail.html:981
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1084
+#: part/templates/part/detail.html:1070
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4969,7 +4996,7 @@ msgstr ""
#: templates/js/translated/company.js:508
#: templates/js/translated/company.js:765
#: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:533 templates/js/translated/part.js:610
+#: templates/js/translated/part.js:534 templates/js/translated/part.js:611
msgid "Inactive"
msgstr ""
@@ -4983,7 +5010,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2356
+#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2444
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5000,12 +5027,12 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:903
+#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:901
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1154
-#: templates/js/translated/part.js:1327
+#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1155
+#: templates/js/translated/part.js:1328
msgid "Building"
msgstr ""
@@ -5057,7 +5084,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:857
+#: templates/js/translated/bom.js:855
msgid "No supplier pricing available"
msgstr ""
@@ -5177,7 +5204,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:851
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849
msgid "Supplier Cost"
msgstr ""
@@ -5199,7 +5226,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1390
+#: part/templates/part/prices.html:215 part/views.py:1325
msgid "Add Internal Price Break"
msgstr ""
@@ -5219,9 +5246,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813
-#: templates/js/translated/part.js:497 templates/js/translated/part.js:1144
-#: templates/js/translated/part.js:1331
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811
+#: templates/js/translated/part.js:498 templates/js/translated/part.js:1145
+#: templates/js/translated/part.js:1332
msgid "No Stock"
msgstr ""
@@ -5275,100 +5302,100 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:172
+#: part/templatetags/inventree_extras.py:174
msgid "Unknown database"
msgstr ""
-#: part/views.py:90
+#: part/views.py:88
msgid "Set Part Category"
msgstr ""
-#: part/views.py:140
+#: part/views.py:138
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:212
+#: part/views.py:210
msgid "Match References"
msgstr ""
-#: part/views.py:509
+#: part/views.py:507
msgid "None"
msgstr ""
-#: part/views.py:568
+#: part/views.py:566
msgid "Part QR Code"
msgstr ""
-#: part/views.py:670
+#: part/views.py:668
msgid "Select Part Image"
msgstr ""
-#: part/views.py:696
+#: part/views.py:694
msgid "Updated part image"
msgstr ""
-#: part/views.py:699
+#: part/views.py:697
msgid "Part image not found"
msgstr ""
-#: part/views.py:850
+#: part/views.py:785
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:857
+#: part/views.py:792
msgid "Part was deleted"
msgstr ""
-#: part/views.py:866
+#: part/views.py:801
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1015
+#: part/views.py:950
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1025
+#: part/views.py:960
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1032
+#: part/views.py:967
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1091 templates/js/translated/part.js:315
+#: part/views.py:1026 templates/js/translated/part.js:315
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1129
+#: part/views.py:1064
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1135
+#: part/views.py:1070
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1144
+#: part/views.py:1079
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1245
+#: part/views.py:1180
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1301
+#: part/views.py:1236
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1323
+#: part/views.py:1258
msgid "Added new price break"
msgstr ""
-#: part/views.py:1399
+#: part/views.py:1334
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1407
+#: part/views.py:1342
msgid "Delete Internal Price Break"
msgstr ""
@@ -5574,12 +5601,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:556 stock/templates/stock/item_base.html:151
-#: templates/js/translated/build.js:373 templates/js/translated/build.js:521
-#: templates/js/translated/build.js:919 templates/js/translated/build.js:1295
+#: stock/models.py:608 stock/templates/stock/item_base.html:151
+#: templates/js/translated/build.js:374 templates/js/translated/build.js:522
+#: templates/js/translated/build.js:920 templates/js/translated/build.js:1296
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:99 templates/js/translated/order.js:2062
-#: templates/js/translated/order.js:2151 templates/js/translated/stock.js:423
+#: templates/js/translated/order.js:99 templates/js/translated/order.js:2150
+#: templates/js/translated/order.js:2239 templates/js/translated/stock.js:422
msgid "Serial Number"
msgstr "일련번호"
@@ -5588,19 +5615,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:2052
+#: stock/models.py:2104
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:2058
+#: stock/models.py:2110
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:50
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:924 templates/js/translated/stock.js:2657
+#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2613
msgid "Date"
msgstr ""
@@ -5618,26 +5645,26 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756
-#: templates/js/translated/stock.js:2910
+#: templates/js/translated/stock.js:542 templates/js/translated/stock.js:712
+#: templates/js/translated/stock.js:2866
msgid "Serial"
msgstr ""
-#: stock/api.py:501
+#: stock/api.py:503
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:508
+#: stock/api.py:510
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:533
+#: stock/api.py:535
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/forms.py:74 stock/forms.py:198 stock/models.py:613
+#: stock/forms.py:74 stock/forms.py:198 stock/models.py:665
#: stock/templates/stock/item_base.html:188
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1791
msgid "Expiry Date"
msgstr ""
@@ -5677,228 +5704,228 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:62 stock/models.py:650
+#: stock/models.py:62 stock/models.py:702
#: stock/templates/stock/item_base.html:402
msgid "Owner"
msgstr ""
-#: stock/models.py:63 stock/models.py:651
+#: stock/models.py:63 stock/models.py:703
msgid "Select Owner"
msgstr ""
-#: stock/models.py:375
+#: stock/models.py:427
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:463
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:421 stock/models.py:430
+#: stock/models.py:473 stock/models.py:482
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:422
+#: stock/models.py:474
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:444
+#: stock/models.py:496
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:450
+#: stock/models.py:502
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:457
+#: stock/models.py:509
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:500
+#: stock/models.py:552
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:509
+#: stock/models.py:561
msgid "Base part"
msgstr ""
-#: stock/models.py:517
+#: stock/models.py:569
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:523 stock/templates/stock/location.html:16
+#: stock/models.py:575 stock/templates/stock/location.html:16
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:526
+#: stock/models.py:578
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:585
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:539 stock/templates/stock/item_base.html:277
+#: stock/models.py:591 stock/templates/stock/item_base.html:277
msgid "Installed In"
msgstr ""
-#: stock/models.py:542
+#: stock/models.py:594
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:558
+#: stock/models.py:610
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:572
+#: stock/models.py:624
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:576
+#: stock/models.py:628
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:585
+#: stock/models.py:637
msgid "Source Build"
msgstr ""
-#: stock/models.py:587
+#: stock/models.py:639
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:598
+#: stock/models.py:650
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:601
+#: stock/models.py:653
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:607
+#: stock/models.py:659
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:614
+#: stock/models.py:666
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:627
+#: stock/models.py:679
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:627
+#: stock/models.py:679
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:637 stock/templates/stock/item.html:121
+#: stock/models.py:689 stock/templates/stock/item.html:121
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:646
+#: stock/models.py:698
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1171
+#: stock/models.py:1223
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1177
+#: stock/models.py:1229
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1183
+#: stock/models.py:1235
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1186
+#: stock/models.py:1238
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1189
+#: stock/models.py:1241
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1196
+#: stock/models.py:1248
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1267
+#: stock/models.py:1319
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1270
+#: stock/models.py:1322
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1273
+#: stock/models.py:1325
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1276
+#: stock/models.py:1328
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1279
+#: stock/models.py:1331
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1282
+#: stock/models.py:1334
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1289 stock/serializers.py:832
+#: stock/models.py:1341 stock/serializers.py:832
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1293
+#: stock/models.py:1345
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1297
+#: stock/models.py:1349
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1301
+#: stock/models.py:1353
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1473
+#: stock/models.py:1525
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1972
+#: stock/models.py:2024
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2029
+#: stock/models.py:2081
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2035
+#: stock/models.py:2087
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2053
+#: stock/models.py:2105
msgid "Test name"
msgstr ""
-#: stock/models.py:2059
+#: stock/models.py:2111
msgid "Test result"
msgstr ""
-#: stock/models.py:2065
+#: stock/models.py:2117
msgid "Test output value"
msgstr ""
-#: stock/models.py:2072
+#: stock/models.py:2124
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2078
+#: stock/models.py:2130
msgid "Test notes"
msgstr ""
@@ -5935,7 +5962,7 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:363 stock/views.py:1127
+#: stock/serializers.py:363 stock/views.py:1009
msgid "Serial numbers already exist"
msgstr "일련번호가 이미 존재합니다"
@@ -6052,11 +6079,11 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:147 templates/js/translated/stock.js:3019
+#: stock/templates/stock/item.html:147 templates/js/translated/stock.js:2975
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1479
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1435
msgid "Add Test Result"
msgstr ""
@@ -6070,7 +6097,7 @@ msgstr ""
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:46 templates/stock_table.html:24
+#: stock/templates/stock/item_base.html:46 templates/stock_table.html:21
msgid "Scan to Location"
msgstr ""
@@ -6083,15 +6110,15 @@ msgid "Stock adjustment actions"
msgstr ""
#: stock/templates/stock/item_base.html:69
-#: stock/templates/stock/location.html:52 templates/stock_table.html:50
+#: stock/templates/stock/location.html:52 templates/stock_table.html:47
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48
+#: stock/templates/stock/item_base.html:72 templates/stock_table.html:45
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49
+#: stock/templates/stock/item_base.html:75 templates/stock_table.html:46
msgid "Remove stock"
msgstr ""
@@ -6100,11 +6127,11 @@ msgid "Serialize stock"
msgstr ""
#: stock/templates/stock/item_base.html:82
-#: stock/templates/stock/location.html:58 templates/stock_table.html:51
+#: stock/templates/stock/location.html:58 templates/stock_table.html:48
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85 templates/stock_table.html:54
+#: stock/templates/stock/item_base.html:85 templates/stock_table.html:51
msgid "Assign to customer"
msgstr ""
@@ -6181,7 +6208,7 @@ msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:201
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1807
msgid "Last Updated"
msgstr ""
@@ -6218,7 +6245,7 @@ msgid "This stock item is serialized - it has a unique serial number and the qua
msgstr ""
#: stock/templates/stock/item_base.html:296
-#: templates/js/translated/build.js:1317
+#: templates/js/translated/build.js:1318
msgid "No location set"
msgstr ""
@@ -6320,11 +6347,11 @@ msgstr ""
msgid "Stock Locations"
msgstr ""
-#: stock/templates/stock/location.html:185 templates/stock_table.html:30
+#: stock/templates/stock/location.html:185 templates/stock_table.html:27
msgid "Printing Actions"
msgstr ""
-#: stock/templates/stock/location.html:189 templates/stock_table.html:34
+#: stock/templates/stock/location.html:189 templates/stock_table.html:31
msgid "Print labels"
msgstr ""
@@ -6348,7 +6375,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:749
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:631
msgid "Convert Stock Item"
msgstr ""
@@ -6369,95 +6396,95 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181 templates/js/translated/stock.js:139
+#: stock/views.py:152 templates/js/translated/stock.js:138
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:728 stock/views.py:854 stock/views.py:1136
+#: stock/views.py:259 stock/views.py:610 stock/views.py:736 stock/views.py:1018
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:274
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:293
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:302
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:342
+#: stock/views.py:313
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:353
+#: stock/views.py:324
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:370
+#: stock/views.py:341
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:371
+#: stock/views.py:342
msgid "Check the confirmation box"
msgstr ""
-#: stock/views.py:475
+#: stock/views.py:357
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:500
+#: stock/views.py:382
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:597 templates/js/translated/stock.js:1074
+#: stock/views.py:479 templates/js/translated/stock.js:1030
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:608
+#: stock/views.py:490
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:630 templates/js/translated/stock.js:332
+#: stock/views.py:512 templates/js/translated/stock.js:331
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:780
+#: stock/views.py:662
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:881
+#: stock/views.py:763
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1023 templates/js/translated/stock.js:312
+#: stock/views.py:905 templates/js/translated/stock.js:311
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1105
+#: stock/views.py:987
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1205
+#: stock/views.py:1087
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1218
+#: stock/views.py:1100
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1229
+#: stock/views.py:1111
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1236
+#: stock/views.py:1118
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1245
+#: stock/views.py:1127
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -7381,14 +7408,14 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1335
+#: templates/js/translated/bom.js:1340
msgid "Required Quantity"
msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:804 templates/js/translated/build.js:1411
-#: templates/js/translated/build.js:2057
+#: templates/js/translated/bom.js:802 templates/js/translated/build.js:1412
+#: templates/js/translated/build.js:2110
#: templates/js/translated/table_filters.js:178
msgid "Available"
msgstr ""
@@ -7580,7 +7607,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:982
msgid "Remove stock item"
msgstr ""
@@ -7635,12 +7662,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286
-#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518
+#: templates/js/translated/order.js:429 templates/js/translated/tables.js:53
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519
+#: templates/js/translated/order.js:430
msgid "Select file format"
msgstr ""
@@ -7716,275 +7743,307 @@ msgstr ""
msgid "Edit BOM Item Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:741
+#: templates/js/translated/bom.js:739
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:745 templates/js/translated/build.js:1393
+#: templates/js/translated/bom.js:743 templates/js/translated/build.js:1394
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:750
+#: templates/js/translated/bom.js:748
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:822
+#: templates/js/translated/bom.js:820
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:837
+#: templates/js/translated/bom.js:835
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:844
+#: templates/js/translated/bom.js:842
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:893 templates/js/translated/bom.js:982
+#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:953
+#: templates/js/translated/bom.js:951
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:955
+#: templates/js/translated/bom.js:953
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:957
+#: templates/js/translated/bom.js:955
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138
+#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:961 templates/js/translated/bom.js:1121
+#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1060 templates/js/translated/build.js:1137
+#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1138
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1116
+#: templates/js/translated/bom.js:1121
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:1318 templates/js/translated/build.js:1377
+#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1378
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1340
+#: templates/js/translated/bom.js:1345
msgid "Inherited from parent BOM"
msgstr ""
-#: templates/js/translated/build.js:85
+#: templates/js/translated/build.js:86
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:119
+#: templates/js/translated/build.js:120
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:140
+#: templates/js/translated/build.js:141
msgid "Build order is ready to be completed"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:146
msgid "Build Order is incomplete"
msgstr ""
-#: templates/js/translated/build.js:173
+#: templates/js/translated/build.js:174
msgid "Complete Build Order"
msgstr ""
-#: templates/js/translated/build.js:214 templates/js/translated/stock.js:92
-#: templates/js/translated/stock.js:181
+#: templates/js/translated/build.js:215 templates/js/translated/stock.js:91
+#: templates/js/translated/stock.js:180
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:216 templates/js/translated/stock.js:94
-#: templates/js/translated/stock.js:183
+#: templates/js/translated/build.js:217 templates/js/translated/stock.js:93
+#: templates/js/translated/stock.js:182
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/build.js:225
+#: templates/js/translated/build.js:226
msgid "The Bill of Materials contains trackable parts"
msgstr ""
-#: templates/js/translated/build.js:226
+#: templates/js/translated/build.js:227
msgid "Build outputs must be generated individually"
msgstr ""
-#: templates/js/translated/build.js:234
+#: templates/js/translated/build.js:235
msgid "Trackable parts can have serial numbers specified"
msgstr ""
-#: templates/js/translated/build.js:235
+#: templates/js/translated/build.js:236
msgid "Enter serial numbers to generate multiple single build outputs"
msgstr ""
-#: templates/js/translated/build.js:242
+#: templates/js/translated/build.js:243
msgid "Create Build Output"
msgstr ""
-#: templates/js/translated/build.js:273
+#: templates/js/translated/build.js:274
msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:284
+#: templates/js/translated/build.js:285
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:293
+#: templates/js/translated/build.js:294
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:301
+#: templates/js/translated/build.js:302
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:324
+#: templates/js/translated/build.js:325
msgid "Are you sure you wish to unallocate stock items from this build?"
msgstr ""
-#: templates/js/translated/build.js:342
+#: templates/js/translated/build.js:343
msgid "Unallocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:360 templates/js/translated/build.js:508
+#: templates/js/translated/build.js:361 templates/js/translated/build.js:509
msgid "Select Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:361 templates/js/translated/build.js:509
+#: templates/js/translated/build.js:362 templates/js/translated/build.js:510
msgid "At least one build output must be selected"
msgstr ""
-#: templates/js/translated/build.js:415 templates/js/translated/build.js:563
+#: templates/js/translated/build.js:416 templates/js/translated/build.js:564
msgid "Output"
msgstr ""
-#: templates/js/translated/build.js:431
+#: templates/js/translated/build.js:432
msgid "Complete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:576
+#: templates/js/translated/build.js:577
msgid "Delete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:665
+#: templates/js/translated/build.js:666
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:703 templates/js/translated/order.js:1965
+#: templates/js/translated/build.js:704 templates/js/translated/order.js:2053
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:885
+#: templates/js/translated/build.js:886
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1334 templates/js/translated/build.js:2068
-#: templates/js/translated/order.js:2099
+#: templates/js/translated/build.js:1335 templates/js/translated/build.js:2121
+#: templates/js/translated/order.js:2187
msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1336 templates/js/translated/build.js:2069
-#: templates/js/translated/order.js:2100
+#: templates/js/translated/build.js:1337 templates/js/translated/build.js:2122
+#: templates/js/translated/order.js:2188
msgid "Delete stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1354
+#: templates/js/translated/build.js:1355
msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:1364
+#: templates/js/translated/build.js:1365
msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:1389
+#: templates/js/translated/build.js:1390
msgid "Substitute parts available"
msgstr ""
-#: templates/js/translated/build.js:1406
+#: templates/js/translated/build.js:1407
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1416 templates/js/translated/build.js:1656
-#: templates/js/translated/build.js:2064 templates/js/translated/order.js:2366
+#: templates/js/translated/build.js:1417 templates/js/translated/build.js:1667
+#: templates/js/translated/build.js:2117 templates/js/translated/order.js:2454
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1472 templates/js/translated/order.js:2446
+#: templates/js/translated/build.js:1473 templates/js/translated/order.js:2534
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:1476 templates/stock_table.html:53
+#: templates/js/translated/build.js:1477 templates/stock_table.html:50
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1479 templates/js/translated/order.js:2439
+#: templates/js/translated/build.js:1480 templates/js/translated/order.js:2527
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:1558 templates/js/translated/order.js:1616
-msgid "Specify stock allocation quantity"
-msgstr ""
-
-#: templates/js/translated/build.js:1629 templates/js/translated/label.js:134
-#: templates/js/translated/order.js:1667 templates/js/translated/report.js:225
+#: templates/js/translated/build.js:1519 templates/js/translated/label.js:134
+#: templates/js/translated/order.js:1755 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1630 templates/js/translated/order.js:1668
+#: templates/js/translated/build.js:1520 templates/js/translated/order.js:1756
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:1644 templates/js/translated/order.js:1682
+#: templates/js/translated/build.js:1569 templates/js/translated/order.js:1704
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:1640
+msgid "All Parts Allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:1641
+msgid "All selected parts have been fully allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:1655 templates/js/translated/order.js:1770
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1717
+#: templates/js/translated/build.js:1684 templates/js/translated/order.js:1805
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1674
+#: templates/js/translated/build.js:1685
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1730
+#: templates/js/translated/build.js:1696 templates/js/translated/order.js:1818
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1757 templates/js/translated/order.js:1807
+#: templates/js/translated/build.js:1768 templates/js/translated/order.js:1895
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1875
+#: templates/js/translated/build.js:1865
+msgid "Automatic Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1866
+msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
+msgstr ""
+
+#: templates/js/translated/build.js:1868
+msgid "If a location is specifed, stock will only be allocated from that location"
+msgstr ""
+
+#: templates/js/translated/build.js:1869
+msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
+msgstr ""
+
+#: templates/js/translated/build.js:1870
+msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
+msgstr ""
+
+#: templates/js/translated/build.js:1890
+msgid "Allocate Stock Items"
+msgstr ""
+
+#: templates/js/translated/build.js:1928
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1892 templates/js/translated/part.js:1235
-#: templates/js/translated/part.js:1646 templates/js/translated/stock.js:1643
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/build.js:1945 templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1647 templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:2567
msgid "Select"
msgstr "선택"
-#: templates/js/translated/build.js:1912
+#: templates/js/translated/build.js:1965
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1976 templates/js/translated/stock.js:2823
+#: templates/js/translated/build.js:2029 templates/js/translated/stock.js:2779
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1988
+#: templates/js/translated/build.js:2041
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:2045
+#: templates/js/translated/build.js:2098
msgid "No parts allocated for"
msgstr ""
@@ -8049,34 +8108,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:517
-#: templates/js/translated/part.js:602
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:518
+#: templates/js/translated/part.js:603
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:521
-#: templates/js/translated/part.js:606
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:522
+#: templates/js/translated/part.js:607
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:696
+#: templates/js/translated/company.js:631 templates/js/translated/part.js:697
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:738
+#: templates/js/translated/company.js:668 templates/js/translated/part.js:739
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:739
+#: templates/js/translated/company.js:669 templates/js/translated/part.js:740
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:756
+#: templates/js/translated/company.js:688 templates/js/translated/part.js:757
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:768
+#: templates/js/translated/company.js:699 templates/js/translated/part.js:769
msgid "Delete Parameter"
msgstr ""
@@ -8085,12 +8144,12 @@ msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:429
+#: templates/js/translated/filters.js:441
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:430
+#: templates/js/translated/filters.js:442
msgid "false"
msgstr ""
@@ -8098,19 +8157,23 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:286
+#: templates/js/translated/filters.js:288
+msgid "Download data"
+msgstr ""
+
+#: templates/js/translated/filters.js:291
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:290
+#: templates/js/translated/filters.js:295
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:293
+#: templates/js/translated/filters.js:298
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:338
+#: templates/js/translated/filters.js:350
msgid "Create filter"
msgstr ""
@@ -8181,7 +8244,7 @@ msgid "NO"
msgstr "아니오"
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1050
+#: templates/js/translated/stock.js:1006
msgid "Select Stock Items"
msgstr ""
@@ -8354,206 +8417,214 @@ msgstr ""
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:366
+#: templates/js/translated/order.js:426
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:460
+#: templates/js/translated/order.js:520
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:461
+#: templates/js/translated/order.js:521
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:481 templates/js/translated/order.js:580
+#: templates/js/translated/order.js:541 templates/js/translated/order.js:640
msgid "Add batch code"
msgstr ""
-#: templates/js/translated/order.js:487 templates/js/translated/order.js:591
+#: templates/js/translated/order.js:547 templates/js/translated/order.js:651
msgid "Add serial numbers"
msgstr ""
-#: templates/js/translated/order.js:499
+#: templates/js/translated/order.js:559
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:563 templates/js/translated/stock.js:2263
+#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2219
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:652
+#: templates/js/translated/order.js:712
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:653
+#: templates/js/translated/order.js:713
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:655
+#: templates/js/translated/order.js:715
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/order.js:674
+#: templates/js/translated/order.js:734
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:675
+#: templates/js/translated/order.js:735
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:865 templates/js/translated/part.js:809
+#: templates/js/translated/order.js:925 templates/js/translated/part.js:810
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:890 templates/js/translated/order.js:1338
+#: templates/js/translated/order.js:950 templates/js/translated/order.js:1426
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:1018 templates/js/translated/order.js:2496
+#: templates/js/translated/order.js:1074 templates/js/translated/order.js:2585
+msgid "Duplicate Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:1104 templates/js/translated/order.js:2607
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1030 templates/js/translated/order.js:2507
+#: templates/js/translated/order.js:1117 templates/js/translated/order.js:2618
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:1073
+#: templates/js/translated/order.js:1160
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:1100 templates/js/translated/order.js:2255
+#: templates/js/translated/order.js:1187 templates/js/translated/order.js:2343
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:1154 templates/js/translated/order.js:2280
-#: templates/js/translated/part.js:1863 templates/js/translated/part.js:2074
+#: templates/js/translated/order.js:1241 templates/js/translated/order.js:2368
+#: templates/js/translated/part.js:1864 templates/js/translated/part.js:2075
msgid "Unit Price"
msgstr "단가"
-#: templates/js/translated/order.js:1169 templates/js/translated/order.js:2296
+#: templates/js/translated/order.js:1256 templates/js/translated/order.js:2384
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:1210 templates/js/translated/order.js:2338
-#: templates/js/translated/part.js:918
+#: templates/js/translated/order.js:1297 templates/js/translated/order.js:2426
+#: templates/js/translated/part.js:919
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:1269 templates/js/translated/part.js:964
+#: templates/js/translated/order.js:1356 templates/js/translated/part.js:965
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1273 templates/js/translated/order.js:2452
+#: templates/js/translated/order.js:1360 templates/js/translated/order.js:2540
+msgid "Duplicate line item"
+msgstr ""
+
+#: templates/js/translated/order.js:1361 templates/js/translated/order.js:2541
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:1274 templates/js/translated/order.js:2456
+#: templates/js/translated/order.js:1362 templates/js/translated/order.js:2545
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1314
+#: templates/js/translated/order.js:1402
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1352
+#: templates/js/translated/order.js:1440
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1439
+#: templates/js/translated/order.js:1527
msgid "Edit shipment"
msgstr ""
-#: templates/js/translated/order.js:1442
+#: templates/js/translated/order.js:1530
msgid "Complete shipment"
msgstr ""
-#: templates/js/translated/order.js:1447
+#: templates/js/translated/order.js:1535
msgid "Delete shipment"
msgstr ""
-#: templates/js/translated/order.js:1467
+#: templates/js/translated/order.js:1555
msgid "Edit Shipment"
msgstr ""
-#: templates/js/translated/order.js:1484
+#: templates/js/translated/order.js:1572
msgid "Delete Shipment"
msgstr ""
-#: templates/js/translated/order.js:1518
+#: templates/js/translated/order.js:1606
msgid "No matching shipments found"
msgstr ""
-#: templates/js/translated/order.js:1528
+#: templates/js/translated/order.js:1616
msgid "Shipment Reference"
msgstr ""
-#: templates/js/translated/order.js:1552
+#: templates/js/translated/order.js:1640
msgid "Not shipped"
msgstr ""
-#: templates/js/translated/order.js:1558
+#: templates/js/translated/order.js:1646
msgid "Tracking"
msgstr ""
-#: templates/js/translated/order.js:1718
+#: templates/js/translated/order.js:1806
msgid "Allocate Stock Items to Sales Order"
msgstr ""
-#: templates/js/translated/order.js:1926
+#: templates/js/translated/order.js:2014
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:2015
+#: templates/js/translated/order.js:2103
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:2032
+#: templates/js/translated/order.js:2120
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:2033
+#: templates/js/translated/order.js:2121
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:2076 templates/js/translated/order.js:2165
-#: templates/js/translated/stock.js:1559
+#: templates/js/translated/order.js:2164 templates/js/translated/order.js:2253
+#: templates/js/translated/stock.js:1515
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/order.js:2084 templates/js/translated/order.js:2174
+#: templates/js/translated/order.js:2172 templates/js/translated/order.js:2262
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:2436
+#: templates/js/translated/order.js:2524
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:2442
+#: templates/js/translated/order.js:2530
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:2449 templates/js/translated/order.js:2616
+#: templates/js/translated/order.js:2537 templates/js/translated/order.js:2727
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:2460
+#: templates/js/translated/order.js:2549
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:2463
+#: templates/js/translated/order.js:2552
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:2522
+#: templates/js/translated/order.js:2633
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:2624
+#: templates/js/translated/order.js:2735
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:2638
+#: templates/js/translated/order.js:2749
msgid "No matching line items"
msgstr ""
@@ -8677,117 +8748,117 @@ msgstr ""
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:481
+#: templates/js/translated/part.js:482
msgid "Copy Bill of Materials"
msgstr "부품 명세서 복사"
-#: templates/js/translated/part.js:509 templates/js/translated/part.js:594
+#: templates/js/translated/part.js:510 templates/js/translated/part.js:595
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:513 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:514 templates/js/translated/part.js:599
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:525
+#: templates/js/translated/part.js:526
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:529
+#: templates/js/translated/part.js:530
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:644
+#: templates/js/translated/part.js:645
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1034
+#: templates/js/translated/part.js:1035
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1058
+#: templates/js/translated/part.js:1059
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1125 templates/js/translated/part.js:1385
+#: templates/js/translated/part.js:1126 templates/js/translated/part.js:1386
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1295
+#: templates/js/translated/part.js:1296
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1318
+#: templates/js/translated/part.js:1319
#: templates/js/translated/table_filters.js:425
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1409 templates/js/translated/part.js:1581
-#: templates/js/translated/stock.js:2572
+#: templates/js/translated/part.js:1410 templates/js/translated/part.js:1582
+#: templates/js/translated/stock.js:2528
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1425
+#: templates/js/translated/part.js:1426
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1600 templates/js/translated/stock.js:2591
+#: templates/js/translated/part.js:1601 templates/js/translated/stock.js:2547
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1664
+#: templates/js/translated/part.js:1665
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1678 templates/js/translated/stock.js:2635
+#: templates/js/translated/part.js:1679 templates/js/translated/stock.js:2591
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1722
+#: templates/js/translated/part.js:1723
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1773 templates/js/translated/stock.js:1270
+#: templates/js/translated/part.js:1774 templates/js/translated/stock.js:1226
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1774 templates/js/translated/stock.js:1271
-#: templates/js/translated/stock.js:1517
+#: templates/js/translated/part.js:1775 templates/js/translated/stock.js:1227
+#: templates/js/translated/stock.js:1473
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1780
+#: templates/js/translated/part.js:1781
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1802
+#: templates/js/translated/part.js:1803
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1816
+#: templates/js/translated/part.js:1817
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1841
+#: templates/js/translated/part.js:1842
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1896
+#: templates/js/translated/part.js:1897
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1897
+#: templates/js/translated/part.js:1898
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1998
+#: templates/js/translated/part.js:1999
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:2017
+#: templates/js/translated/part.js:2018
msgid "Single Price Difference"
msgstr ""
@@ -8861,368 +8932,356 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:102
+#: templates/js/translated/stock.js:101
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:111
+#: templates/js/translated/stock.js:110
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:154
+#: templates/js/translated/stock.js:153
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:194
+#: templates/js/translated/stock.js:193
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:233
+#: templates/js/translated/stock.js:232
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/stock.js:238
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:381
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:395
+#: templates/js/translated/stock.js:394
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:420
+#: templates/js/translated/stock.js:419
msgid "Find Serial Number"
msgstr "일련번호 찾기"
-#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425
+#: templates/js/translated/stock.js:423 templates/js/translated/stock.js:424
msgid "Enter serial number"
msgstr "일련번호를 입력하세요"
-#: templates/js/translated/stock.js:441
+#: templates/js/translated/stock.js:440
msgid "Enter a serial number"
msgstr "일련번호를 입력하세요"
-#: templates/js/translated/stock.js:461
+#: templates/js/translated/stock.js:460
msgid "No matching serial number"
msgstr "일치하는 일련번호가 없습니다"
-#: templates/js/translated/stock.js:470
+#: templates/js/translated/stock.js:469
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:515
-msgid "Export Stock"
-msgstr ""
-
-#: templates/js/translated/stock.js:526
-msgid "Include Sublocations"
-msgstr ""
-
-#: templates/js/translated/stock.js:527
-msgid "Include stock items in sublocations"
-msgstr ""
-
-#: templates/js/translated/stock.js:636
+#: templates/js/translated/stock.js:592
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:637
+#: templates/js/translated/stock.js:593
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:714
+#: templates/js/translated/stock.js:670
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:715
+#: templates/js/translated/stock.js:671
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:717
+#: templates/js/translated/stock.js:673
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:718
+#: templates/js/translated/stock.js:674
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:804
+#: templates/js/translated/stock.js:760
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:805
+#: templates/js/translated/stock.js:761
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:900
+#: templates/js/translated/stock.js:856
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:901
+#: templates/js/translated/stock.js:857
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:907
+#: templates/js/translated/stock.js:863
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:908
+#: templates/js/translated/stock.js:864
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:912
+#: templates/js/translated/stock.js:868
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:913
+#: templates/js/translated/stock.js:869
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:917
+#: templates/js/translated/stock.js:873
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:918 users/models.py:213
+#: templates/js/translated/stock.js:874 users/models.py:213
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:922
+#: templates/js/translated/stock.js:878
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1011
+#: templates/js/translated/stock.js:967
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1011
+#: templates/js/translated/stock.js:967
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1051
+#: templates/js/translated/stock.js:1007
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1209
+#: templates/js/translated/stock.js:1165
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1211
+#: templates/js/translated/stock.js:1167
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1216
+#: templates/js/translated/stock.js:1172
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1263
+#: templates/js/translated/stock.js:1219
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1266
+#: templates/js/translated/stock.js:1222
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1292
+#: templates/js/translated/stock.js:1248
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1348
+#: templates/js/translated/stock.js:1304
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1500
+#: templates/js/translated/stock.js:1456
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1522
+#: templates/js/translated/stock.js:1478
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1551
+#: templates/js/translated/stock.js:1507
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1511
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1563
+#: templates/js/translated/stock.js:1519
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1569
+#: templates/js/translated/stock.js:1525
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1727
+#: templates/js/translated/stock.js:1683
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1732
+#: templates/js/translated/stock.js:1688
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1691
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1739
+#: templates/js/translated/stock.js:1695
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1741
+#: templates/js/translated/stock.js:1697
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1747
+#: templates/js/translated/stock.js:1703
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1749
+#: templates/js/translated/stock.js:1705
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1751
+#: templates/js/translated/stock.js:1707
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1756
+#: templates/js/translated/stock.js:1712
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1763
+#: templates/js/translated/stock.js:1719
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1765
+#: templates/js/translated/stock.js:1721
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1767
+#: templates/js/translated/stock.js:1723
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1771
+#: templates/js/translated/stock.js:1727
#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1821
+#: templates/js/translated/stock.js:1777
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1903
+#: templates/js/translated/stock.js:1859
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1941
+#: templates/js/translated/stock.js:1897
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1962 templates/js/translated/stock.js:2010
+#: templates/js/translated/stock.js:1918 templates/js/translated/stock.js:1966
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:2050
+#: templates/js/translated/stock.js:2006
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:2077
+#: templates/js/translated/stock.js:2033
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:2079
+#: templates/js/translated/stock.js:2035
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:2278
+#: templates/js/translated/stock.js:2234
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2292
+#: templates/js/translated/stock.js:2248
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2293
+#: templates/js/translated/stock.js:2249
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2472
+#: templates/js/translated/stock.js:2428
msgid "Allocated Quantity"
msgstr ""
-#: templates/js/translated/stock.js:2682
+#: templates/js/translated/stock.js:2638
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2707
+#: templates/js/translated/stock.js:2663
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2726
+#: templates/js/translated/stock.js:2682
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2745
+#: templates/js/translated/stock.js:2701
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2763
+#: templates/js/translated/stock.js:2719
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2786
+#: templates/js/translated/stock.js:2742
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2794
+#: templates/js/translated/stock.js:2750
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2835
+#: templates/js/translated/stock.js:2791
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2836
+#: templates/js/translated/stock.js:2792
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2887
+#: templates/js/translated/stock.js:2843
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2938
+#: templates/js/translated/stock.js:2894
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2974
+#: templates/js/translated/stock.js:2930
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2975
+#: templates/js/translated/stock.js:2931
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2977
+#: templates/js/translated/stock.js:2933
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2978
+#: templates/js/translated/stock.js:2934
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2979
+#: templates/js/translated/stock.js:2935
msgid "The Stock Item is serialized and does not belong to another item"
msgstr ""
-#: templates/js/translated/stock.js:2992
+#: templates/js/translated/stock.js:2948
msgid "Select part to install"
msgstr ""
@@ -9429,60 +9488,68 @@ msgstr ""
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:368
+#: templates/js/translated/tables.js:50
+msgid "Export Table Data"
+msgstr ""
+
+#: templates/js/translated/tables.js:54
+msgid "Select File Format"
+msgstr ""
+
+#: templates/js/translated/tables.js:433
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:371
+#: templates/js/translated/tables.js:436
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:376
+#: templates/js/translated/tables.js:441
msgid "Showing all rows"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:382 templates/search_form.html:6
+#: templates/js/translated/tables.js:447 templates/search_form.html:6
#: templates/search_form.html:7
msgid "Search"
msgstr ""
-#: templates/js/translated/tables.js:385
+#: templates/js/translated/tables.js:450
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:388
+#: templates/js/translated/tables.js:453
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:391
+#: templates/js/translated/tables.js:456
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:394
+#: templates/js/translated/tables.js:459
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:397
+#: templates/js/translated/tables.js:462
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:400
+#: templates/js/translated/tables.js:465
msgid "All"
msgstr ""
@@ -9586,63 +9653,59 @@ msgstr ""
msgid "Email settings not configured"
msgstr ""
-#: templates/stock_table.html:14
-msgid "Export Stock Information"
-msgstr ""
-
-#: templates/stock_table.html:20
+#: templates/stock_table.html:17
msgid "Barcode Actions"
msgstr ""
-#: templates/stock_table.html:36
+#: templates/stock_table.html:33
msgid "Print test reports"
msgstr ""
-#: templates/stock_table.html:43
+#: templates/stock_table.html:40
msgid "Stock Options"
msgstr ""
-#: templates/stock_table.html:48
+#: templates/stock_table.html:45
msgid "Add to selected stock items"
msgstr ""
-#: templates/stock_table.html:49
+#: templates/stock_table.html:46
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:50
+#: templates/stock_table.html:47
msgid "Stocktake selected stock items"
msgstr ""
-#: templates/stock_table.html:51
+#: templates/stock_table.html:48
msgid "Move selected stock items"
msgstr ""
-#: templates/stock_table.html:52
+#: templates/stock_table.html:49
msgid "Merge selected stock items"
msgstr ""
-#: templates/stock_table.html:52
+#: templates/stock_table.html:49
msgid "Merge stock"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:50
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:52
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:52
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:55
msgid "Delete selected items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:55
msgid "Delete stock"
msgstr ""
diff --git a/InvenTree/locale/nl/LC_MESSAGES/django.po b/InvenTree/locale/nl/LC_MESSAGES/django.po
index 1bfea42c3e..9d36d788b0 100644
--- a/InvenTree/locale/nl/LC_MESSAGES/django.po
+++ b/InvenTree/locale/nl/LC_MESSAGES/django.po
@@ -1,10 +1,10 @@
-#: templates/js/translated/order.js:2090
+#: templates/js/translated/order.js:2178
msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-03-01 13:34+0000\n"
-"PO-Revision-Date: 2022-03-01 14:09\n"
+"POT-Creation-Date: 2022-03-07 04:31+0000\n"
+"PO-Revision-Date: 2022-03-07 04:47\n"
"Last-Translator: \n"
"Language-Team: Dutch\n"
"Language: nl_NL\n"
@@ -86,7 +86,7 @@ msgid "Duplicate serial: {sn}"
msgstr ""
#: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435
-#: stock/views.py:1101
+#: stock/views.py:983
msgid "Invalid quantity provided"
msgstr "Ongeldige hoeveeldheid ingevoerd"
@@ -114,100 +114,100 @@ msgstr "Geen serienummers gevonden"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Aantal unieke serienummer ({s}) moet overeenkomen met de hoeveelheid ({q})"
-#: InvenTree/models.py:176
+#: InvenTree/models.py:185
msgid "Missing file"
msgstr "Ontbrekend bestand"
-#: InvenTree/models.py:177
+#: InvenTree/models.py:186
msgid "Missing external link"
msgstr "Externe link ontbreekt"
-#: InvenTree/models.py:188 stock/models.py:2071
+#: InvenTree/models.py:197 stock/models.py:2123
#: templates/js/translated/attachment.js:119
msgid "Attachment"
msgstr "Bijlage"
-#: InvenTree/models.py:189
+#: InvenTree/models.py:198
msgid "Select file to attach"
msgstr "Bestand als bijlage selecteren"
-#: InvenTree/models.py:195 company/models.py:131 company/models.py:348
+#: InvenTree/models.py:204 company/models.py:131 company/models.py:348
#: company/models.py:564 order/models.py:127 part/models.py:860
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1346
+#: templates/js/translated/company.js:829 templates/js/translated/part.js:1347
msgid "Link"
msgstr "Link"
-#: InvenTree/models.py:196 build/models.py:330 part/models.py:861
-#: stock/models.py:566
+#: InvenTree/models.py:205 build/models.py:332 part/models.py:861
+#: stock/models.py:618
msgid "Link to external URL"
msgstr "Link naar externe URL"
-#: InvenTree/models.py:199 templates/js/translated/attachment.js:163
+#: InvenTree/models.py:208 templates/js/translated/attachment.js:163
msgid "Comment"
msgstr "Opmerking"
-#: InvenTree/models.py:199
+#: InvenTree/models.py:208
msgid "File comment"
msgstr "Bijlage opmerking"
-#: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1277
+#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1277
#: common/models.py:1278 common/models.py:1506 common/models.py:1507
-#: part/models.py:2303 part/models.py:2323
+#: part/models.py:2317 part/models.py:2337
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2817
+#: templates/js/translated/stock.js:2773
msgid "User"
msgstr "Gebruiker"
-#: InvenTree/models.py:209
+#: InvenTree/models.py:218
msgid "upload date"
msgstr "uploaddatum"
-#: InvenTree/models.py:232
+#: InvenTree/models.py:241
msgid "Filename must not be empty"
msgstr "Bestandsnaam mag niet leeg zijn"
-#: InvenTree/models.py:255
+#: InvenTree/models.py:264
msgid "Invalid attachment directory"
msgstr "Fout bijlagemap"
-#: InvenTree/models.py:265
+#: InvenTree/models.py:274
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Bestandsnaam bevat illegale teken '{c}'"
-#: InvenTree/models.py:268
+#: InvenTree/models.py:277
msgid "Filename missing extension"
msgstr "Bestandsnaam mist extensie"
-#: InvenTree/models.py:275
+#: InvenTree/models.py:284
msgid "Attachment with this filename already exists"
msgstr "Bijlage met deze bestandsnaam bestaat al"
-#: InvenTree/models.py:282
+#: InvenTree/models.py:291
msgid "Error renaming file"
msgstr "Fout bij hernoemen bestand"
-#: InvenTree/models.py:317
+#: InvenTree/models.py:326
msgid "Invalid choice"
msgstr "Ongeldige keuze"
-#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1492
+#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1492
#: company/models.py:415 label/models.py:112 part/models.py:804
-#: part/models.py:2487 plugin/models.py:40 report/models.py:181
+#: part/models.py:2501 plugin/models.py:40 report/models.py:181
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:48
#: templates/InvenTree/settings/plugin.html:125
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:319
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:567
-#: templates/js/translated/part.js:706 templates/js/translated/part.js:1653
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/company.js:641 templates/js/translated/part.js:568
+#: templates/js/translated/part.js:707 templates/js/translated/part.js:1654
+#: templates/js/translated/stock.js:2573
msgid "Name"
msgstr "Naam"
-#: InvenTree/models.py:340 build/models.py:207
+#: InvenTree/models.py:349 build/models.py:209
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
@@ -219,28 +219,28 @@ msgstr "Naam"
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:92
#: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:765
-#: templates/js/translated/build.js:1920 templates/js/translated/company.js:345
+#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763
+#: templates/js/translated/build.js:1973 templates/js/translated/company.js:345
#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:911
-#: templates/js/translated/order.js:1105 templates/js/translated/order.js:1366
-#: templates/js/translated/part.js:626 templates/js/translated/part.js:1021
-#: templates/js/translated/part.js:1106 templates/js/translated/part.js:1276
-#: templates/js/translated/part.js:1672 templates/js/translated/part.js:1741
-#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2446
-#: templates/js/translated/stock.js:2629 templates/js/translated/stock.js:2667
+#: templates/js/translated/company.js:840 templates/js/translated/order.js:971
+#: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454
+#: templates/js/translated/part.js:627 templates/js/translated/part.js:1022
+#: templates/js/translated/part.js:1107 templates/js/translated/part.js:1277
+#: templates/js/translated/part.js:1673 templates/js/translated/part.js:1742
+#: templates/js/translated/stock.js:1656 templates/js/translated/stock.js:2402
+#: templates/js/translated/stock.js:2585 templates/js/translated/stock.js:2623
msgid "Description"
msgstr "Omschrijving"
-#: InvenTree/models.py:341
+#: InvenTree/models.py:350
msgid "Description (optional)"
msgstr "Omschrijving (optioneel)"
-#: InvenTree/models.py:349
+#: InvenTree/models.py:358
msgid "parent"
msgstr "overkoepelend"
-#: InvenTree/serializers.py:65 part/models.py:2805
+#: InvenTree/serializers.py:65 part/models.py:2820
msgid "Must be a valid number"
msgstr "Moet een geldig nummer zijn"
@@ -294,87 +294,87 @@ msgstr ""
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:665
msgid "German"
msgstr "Duits"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:666
msgid "Greek"
msgstr "Grieks"
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:667
msgid "English"
msgstr "Engels"
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:668
msgid "Spanish"
msgstr "Spaans"
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:669
msgid "Spanish (Mexican)"
msgstr "Spaans (Mexicaans)"
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:670
msgid "French"
msgstr "Frans"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:671
msgid "Hebrew"
msgstr "Hebreeuws"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:672
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:673
msgid "Italian"
msgstr "Italiaans"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:674
msgid "Japanese"
msgstr "Japans"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:675
msgid "Korean"
msgstr "Koreaans"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:676
msgid "Dutch"
msgstr "Nederlands"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:677
msgid "Norwegian"
msgstr "Noors"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:678
msgid "Polish"
msgstr "Pools"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:679
msgid "Portugese"
msgstr "Portugees"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:680
msgid "Russian"
msgstr "Russisch"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:681
msgid "Swedish"
msgstr "Zweeds"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:682
msgid "Thai"
msgstr "Thais"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:683
msgid "Turkish"
msgstr "Turks"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:684
msgid "Vietnamese"
msgstr "Vietnamees"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:685
msgid "Chinese"
msgstr "Chinees"
@@ -421,7 +421,7 @@ msgid "Returned"
msgstr "Retour"
#: InvenTree/status_codes.py:143 order/models.py:997
-#: templates/js/translated/order.js:2097 templates/js/translated/order.js:2394
+#: templates/js/translated/order.js:2185 templates/js/translated/order.js:2482
msgid "Shipped"
msgstr "Verzonden"
@@ -501,7 +501,7 @@ msgstr "Splits van bovenliggend item"
msgid "Split child item"
msgstr "Splits onderliggende item"
-#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2204
+#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2160
msgid "Merged stock items"
msgstr ""
@@ -593,43 +593,43 @@ msgstr "Wachtwoordvelden komen niet overeen"
msgid "System Information"
msgstr "Systeeminformatie"
-#: barcodes/api.py:54 barcodes/api.py:152
+#: barcodes/api.py:55 barcodes/api.py:156
msgid "Must provide barcode_data parameter"
msgstr "De paramenter barcode_data moet worden aangeleverd"
-#: barcodes/api.py:128
+#: barcodes/api.py:132
msgid "No match found for barcode data"
msgstr "Geen overeenkomst gevonden voor barcode gegevens"
-#: barcodes/api.py:130
+#: barcodes/api.py:134
msgid "Match found for barcode data"
msgstr "Overeenkomst gevonden voor barcode gegevens"
-#: barcodes/api.py:155
+#: barcodes/api.py:159
msgid "Must provide stockitem parameter"
msgstr "Moet voorraaditem parameter aanleveren"
-#: barcodes/api.py:162
+#: barcodes/api.py:166
msgid "No matching stock item found"
msgstr "Geen overeenkomend voorraaditem gevonden"
-#: barcodes/api.py:193
+#: barcodes/api.py:197
msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:197
+#: barcodes/api.py:201
msgid "Barcode already matches Stock Location"
msgstr ""
-#: barcodes/api.py:201
+#: barcodes/api.py:205
msgid "Barcode already matches Part"
msgstr ""
-#: barcodes/api.py:207 barcodes/api.py:219
+#: barcodes/api.py:211 barcodes/api.py:223
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: barcodes/api.py:225
+#: barcodes/api.py:229
msgid "Barcode associated with Stock Item"
msgstr ""
@@ -641,18 +641,18 @@ msgstr "Annuleren bevestigen"
msgid "Confirm build cancellation"
msgstr "Bevestig annulering van de build"
-#: build/models.py:133
+#: build/models.py:135
msgid "Invalid choice for parent build"
msgstr "Ongeldige keuze voor bovenliggende build"
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:139 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:676 templates/js/translated/stock.js:2422
+#: templates/js/translated/build.js:677 templates/js/translated/stock.js:2378
msgid "Build Order"
msgstr "Productie-opdracht"
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:140 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:92
#: order/templates/order/so_sidebar.html:13
@@ -662,41 +662,41 @@ msgstr "Productie-opdracht"
msgid "Build Orders"
msgstr "Productie-opdrachten"
-#: build/models.py:198
+#: build/models.py:200
msgid "Build Order Reference"
msgstr "Productie-opdracht referentie"
-#: build/models.py:199 order/models.py:213 order/models.py:563
-#: order/models.py:843 part/models.py:2716
+#: build/models.py:201 order/models.py:213 order/models.py:563
+#: order/models.py:843 part/models.py:2731
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:772 templates/js/translated/build.js:1401
-#: templates/js/translated/order.js:1136 templates/js/translated/order.js:2261
+#: templates/js/translated/bom.js:770 templates/js/translated/build.js:1402
+#: templates/js/translated/order.js:1223 templates/js/translated/order.js:2349
msgid "Reference"
msgstr "Referentie"
-#: build/models.py:210
+#: build/models.py:212
msgid "Brief description of the build"
msgstr "Korte beschrijving van de build"
-#: build/models.py:219 build/templates/build/build_base.html:169
+#: build/models.py:221 build/templates/build/build_base.html:169
#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr "Bovenliggende bouw"
-#: build/models.py:220
+#: build/models.py:222
msgid "BuildOrder to which this build is allocated"
msgstr "Productie-opdracht waar dit product aan is toegewezen"
-#: build/models.py:225 build/templates/build/build_base.html:77
+#: build/models.py:227 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
#: order/models.py:912 order/models.py:986
#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359
-#: part/models.py:2249 part/models.py:2265 part/models.py:2284
-#: part/models.py:2301 part/models.py:2403 part/models.py:2525
-#: part/models.py:2615 part/models.py:2691 part/models.py:2998
-#: part/serializers.py:666 part/templates/part/part_app_base.html:8
+#: part/models.py:2263 part/models.py:2279 part/models.py:2298
+#: part/models.py:2315 part/models.py:2417 part/models.py:2539
+#: part/models.py:2629 part/models.py:2706 part/models.py:3013
+#: part/serializers.py:669 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: part/templates/part/upload_bom.html:52
@@ -707,231 +707,231 @@ msgstr "Productie-opdracht waar dit product aan is toegewezen"
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551
-#: templates/js/translated/bom.js:730 templates/js/translated/build.js:902
-#: templates/js/translated/build.js:1270 templates/js/translated/build.js:1655
-#: templates/js/translated/build.js:1925 templates/js/translated/company.js:492
+#: templates/js/translated/bom.js:728 templates/js/translated/build.js:903
+#: templates/js/translated/build.js:1271 templates/js/translated/build.js:1666
+#: templates/js/translated/build.js:1978 templates/js/translated/company.js:492
#: templates/js/translated/company.js:749 templates/js/translated/order.js:84
-#: templates/js/translated/order.js:651 templates/js/translated/order.js:1090
-#: templates/js/translated/order.js:1693 templates/js/translated/order.js:2050
-#: templates/js/translated/order.js:2245 templates/js/translated/part.js:1006
-#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1254
-#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1657
-#: templates/js/translated/stock.js:2892 templates/js/translated/stock.js:2991
+#: templates/js/translated/order.js:711 templates/js/translated/order.js:1177
+#: templates/js/translated/order.js:1781 templates/js/translated/order.js:2138
+#: templates/js/translated/order.js:2333 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1088 templates/js/translated/part.js:1255
+#: templates/js/translated/stock.js:518 templates/js/translated/stock.js:683
+#: templates/js/translated/stock.js:890 templates/js/translated/stock.js:1613
+#: templates/js/translated/stock.js:2848 templates/js/translated/stock.js:2947
msgid "Part"
msgstr "Onderdeel"
-#: build/models.py:233
+#: build/models.py:235
msgid "Select part to build"
msgstr "Selecteer onderdeel om te bouwen"
-#: build/models.py:238
+#: build/models.py:240
msgid "Sales Order Reference"
msgstr "Verkooporder referentie"
-#: build/models.py:242
+#: build/models.py:244
msgid "SalesOrder to which this build is allocated"
msgstr "Verkooporder waar dit product aan is toegewezen"
-#: build/models.py:247 templates/js/translated/build.js:1643
-#: templates/js/translated/order.js:1681
+#: build/models.py:249 build/serializers.py:729
+#: templates/js/translated/build.js:1654 templates/js/translated/order.js:1769
msgid "Source Location"
msgstr "Bron Locatie"
-#: build/models.py:251
+#: build/models.py:253
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr "Selecteer de locatie waar de voorraad van de build vandaan moet komen (laat leeg om vanaf elke standaard locatie te nemen)"
-#: build/models.py:256
+#: build/models.py:258
msgid "Destination Location"
msgstr "Bestemmings Locatie"
-#: build/models.py:260
+#: build/models.py:262
msgid "Select location where the completed items will be stored"
msgstr "Selecteer locatie waar de voltooide items zullen worden opgeslagen"
-#: build/models.py:264
+#: build/models.py:266
msgid "Build Quantity"
msgstr "Bouwkwaliteit"
-#: build/models.py:267
+#: build/models.py:269
msgid "Number of stock items to build"
msgstr "Aantal voorraaditems om te bouwen"
-#: build/models.py:271
+#: build/models.py:273
msgid "Completed items"
msgstr "Voltooide voorraadartikelen"
-#: build/models.py:273
+#: build/models.py:275
msgid "Number of stock items which have been completed"
msgstr "Aantal voorraadartikelen die zijn voltooid"
-#: build/models.py:277 part/templates/part/part_base.html:234
+#: build/models.py:279 part/templates/part/part_base.html:234
msgid "Build Status"
msgstr "Bouwstatus"
-#: build/models.py:281
+#: build/models.py:283
msgid "Build status code"
msgstr "Bouwstatuscode"
-#: build/models.py:285 build/serializers.py:218 order/serializers.py:272
-#: stock/models.py:570 templates/js/translated/order.js:513
+#: build/models.py:287 build/serializers.py:218 order/serializers.py:272
+#: stock/models.py:622 templates/js/translated/order.js:573
msgid "Batch Code"
msgstr ""
-#: build/models.py:289 build/serializers.py:219
+#: build/models.py:291 build/serializers.py:219
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:129 part/models.py:999
-#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1379
+#: build/models.py:294 order/models.py:129 part/models.py:999
+#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1467
msgid "Creation Date"
msgstr "Aanmaakdatum"
-#: build/models.py:296 order/models.py:585
+#: build/models.py:298 order/models.py:585
msgid "Target completion date"
msgstr "Verwachte opleveringsdatum"
-#: build/models.py:297
+#: build/models.py:299
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:255
-#: templates/js/translated/build.js:2002
+#: build/models.py:302 order/models.py:255
+#: templates/js/translated/build.js:2055
msgid "Completion Date"
msgstr "Opleveringsdatum"
-#: build/models.py:306
+#: build/models.py:308
msgid "completed by"
msgstr "voltooid door"
-#: build/models.py:314 templates/js/translated/build.js:1970
+#: build/models.py:316 templates/js/translated/build.js:2023
msgid "Issued by"
msgstr ""
-#: build/models.py:315
+#: build/models.py:317
msgid "User who issued this build order"
msgstr "Gebruiker die de productie-opdracht heeft gegeven"
-#: build/models.py:323 build/templates/build/build_base.html:190
+#: build/models.py:325 build/templates/build/build_base.html:190
#: build/templates/build/detail.html:116 order/models.py:143
#: order/templates/order/order_base.html:170
#: order/templates/order/sales_order_base.html:182 part/models.py:1003
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1982 templates/js/translated/order.js:945
+#: templates/js/translated/build.js:2035 templates/js/translated/order.js:1005
msgid "Responsible"
msgstr "Verantwoordelijke"
-#: build/models.py:324
+#: build/models.py:326
msgid "User responsible for this build order"
msgstr "Gebruiker verantwoordelijk voor deze productie-opdracht"
-#: build/models.py:329 build/templates/build/detail.html:102
+#: build/models.py:331 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:564
+#: part/templates/part/part_base.html:354 stock/models.py:616
#: stock/templates/stock/item_base.html:352
msgid "External Link"
msgstr "Externe Link"
-#: build/models.py:334 build/serializers.py:381
+#: build/models.py:336 build/serializers.py:381
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
#: order/models.py:147 order/models.py:845 order/models.py:1107
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/models.py:988
-#: part/templates/part/detail.html:146 part/templates/part/part_sidebar.html:57
+#: part/templates/part/detail.html:141 part/templates/part/part_sidebar.html:57
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:137 stock/forms.py:171 stock/models.py:636
-#: stock/models.py:1971 stock/models.py:2077 stock/serializers.py:332
+#: stock/forms.py:137 stock/forms.py:171 stock/models.py:688
+#: stock/models.py:2023 stock/models.py:2129 stock/serializers.py:332
#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:936
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1257
-#: templates/js/translated/order.js:1562 templates/js/translated/order.js:2419
-#: templates/js/translated/stock.js:1344 templates/js/translated/stock.js:1935
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934
+#: templates/js/translated/company.js:845 templates/js/translated/order.js:1344
+#: templates/js/translated/order.js:1650 templates/js/translated/order.js:2507
+#: templates/js/translated/stock.js:1300 templates/js/translated/stock.js:1891
msgid "Notes"
msgstr "Opmerkingen"
-#: build/models.py:335
+#: build/models.py:337
msgid "Extra build notes"
msgstr "Opmerkingen over de bouw"
-#: build/models.py:748
+#: build/models.py:750
msgid "No build output specified"
msgstr "Geen bouwuitvoer opgegeven"
-#: build/models.py:751
+#: build/models.py:753
msgid "Build output is already completed"
msgstr "Bouwuitvoer is al voltooid"
-#: build/models.py:754
+#: build/models.py:756
msgid "Build output does not match Build Order"
msgstr "Product komt niet overeen met de productie-opdracht"
-#: build/models.py:1060
+#: build/models.py:1162
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1069
+#: build/models.py:1171
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1079
+#: build/models.py:1181
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1085 order/models.py:1225
+#: build/models.py:1187 order/models.py:1225
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1091
+#: build/models.py:1193
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1148
+#: build/models.py:1250
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1217 stock/templates/stock/item_base.html:324
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898
+#: build/models.py:1319 stock/templates/stock/item_base.html:324
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1951
#: templates/navbar.html:35
msgid "Build"
msgstr "Product"
-#: build/models.py:1218
+#: build/models.py:1320
msgid "Build to allocate parts"
msgstr "Bouw om onderdelen toe te wijzen"
-#: build/models.py:1234 build/serializers.py:576 order/serializers.py:783
+#: build/models.py:1336 build/serializers.py:576 order/serializers.py:783
#: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635
#: stock/serializers.py:753 stock/templates/stock/item_base.html:9
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:346
-#: templates/js/translated/build.js:687 templates/js/translated/build.js:692
-#: templates/js/translated/build.js:1657 templates/js/translated/build.js:2050
-#: templates/js/translated/order.js:85 templates/js/translated/order.js:1694
-#: templates/js/translated/order.js:1949 templates/js/translated/order.js:1954
-#: templates/js/translated/order.js:2057 templates/js/translated/order.js:2147
-#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728
-#: templates/js/translated/stock.js:2753
+#: templates/js/translated/build.js:688 templates/js/translated/build.js:693
+#: templates/js/translated/build.js:1668 templates/js/translated/build.js:2103
+#: templates/js/translated/order.js:85 templates/js/translated/order.js:1782
+#: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:2235
+#: templates/js/translated/stock.js:519 templates/js/translated/stock.js:684
+#: templates/js/translated/stock.js:2709
msgid "Stock Item"
msgstr "Voorraadartikel"
-#: build/models.py:1235
+#: build/models.py:1337
msgid "Source stock item"
msgstr "Bron voorraadartikel"
-#: build/models.py:1247 build/serializers.py:188
+#: build/models.py:1349 build/serializers.py:188
#: build/templates/build/build_base.html:82
#: build/templates/build/detail.html:35 common/models.py:1317
#: company/forms.py:42 company/templates/company/supplier_part.html:251
#: order/models.py:836 order/models.py:1265 order/serializers.py:903
#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144
-#: part/forms.py:160 part/forms.py:176 part/models.py:2707
-#: part/templates/part/detail.html:1008 part/templates/part/detail.html:1094
+#: part/forms.py:160 part/forms.py:176 part/models.py:2722
+#: part/templates/part/detail.html:994 part/templates/part/detail.html:1080
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_build_order_base.html:114
@@ -943,32 +943,32 @@ msgstr "Bron voorraadartikel"
#: stock/templates/stock/item_base.html:176
#: stock/templates/stock/item_base.html:241
#: stock/templates/stock/item_base.html:249
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:780
-#: templates/js/translated/build.js:375 templates/js/translated/build.js:523
-#: templates/js/translated/build.js:714 templates/js/translated/build.js:911
-#: templates/js/translated/build.js:921 templates/js/translated/build.js:1297
-#: templates/js/translated/build.js:1658
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778
+#: templates/js/translated/build.js:376 templates/js/translated/build.js:524
+#: templates/js/translated/build.js:715 templates/js/translated/build.js:912
+#: templates/js/translated/build.js:922 templates/js/translated/build.js:1298
+#: templates/js/translated/build.js:1669
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:101 templates/js/translated/order.js:1142
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:1976
-#: templates/js/translated/order.js:2064 templates/js/translated/order.js:2153
-#: templates/js/translated/order.js:2267 templates/js/translated/part.js:906
-#: templates/js/translated/part.js:1884 templates/js/translated/part.js:2007
-#: templates/js/translated/part.js:2085 templates/js/translated/stock.js:391
-#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758
-#: templates/js/translated/stock.js:2802 templates/js/translated/stock.js:2904
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:1229
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:2064
+#: templates/js/translated/order.js:2152 templates/js/translated/order.js:2241
+#: templates/js/translated/order.js:2355 templates/js/translated/part.js:907
+#: templates/js/translated/part.js:1885 templates/js/translated/part.js:2008
+#: templates/js/translated/part.js:2086 templates/js/translated/stock.js:390
+#: templates/js/translated/stock.js:544 templates/js/translated/stock.js:714
+#: templates/js/translated/stock.js:2758 templates/js/translated/stock.js:2860
msgid "Quantity"
msgstr "Aantal"
-#: build/models.py:1248
+#: build/models.py:1350
msgid "Stock quantity to allocate to build"
msgstr "Voorraad hoeveelheid te alloceren aan bouw"
-#: build/models.py:1256
+#: build/models.py:1358
msgid "Install into"
msgstr "Installeren in"
-#: build/models.py:1257
+#: build/models.py:1359
msgid "Destination stock item"
msgstr "Bestemming voorraadartikel"
@@ -997,8 +997,8 @@ msgid "Enter quantity for build output"
msgstr "Voer hoeveelheid in voor build-output"
#: build/serializers.py:201 build/serializers.py:596 order/models.py:280
-#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:826
-#: stock/models.py:404 stock/models.py:1180 stock/serializers.py:305
+#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:836
+#: stock/models.py:456 stock/models.py:1232 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1012,8 +1012,8 @@ msgstr ""
#: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907
#: stock/forms.py:78 stock/serializers.py:314
-#: templates/js/translated/order.js:524 templates/js/translated/stock.js:238
-#: templates/js/translated/stock.js:392
+#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237
+#: templates/js/translated/stock.js:391
msgid "Serial Numbers"
msgstr "Serienummers"
@@ -1029,7 +1029,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:275 stock/api.py:549
+#: build/serializers.py:275 stock/api.py:551
msgid "The following serial numbers already exist"
msgstr ""
@@ -1041,13 +1041,13 @@ msgstr ""
#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788
#: stock/serializers.py:1029 stock/templates/stock/item_base.html:292
#: templates/js/translated/barcode.js:384
-#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:699
-#: templates/js/translated/build.js:1309 templates/js/translated/order.js:551
-#: templates/js/translated/order.js:1961 templates/js/translated/order.js:2072
-#: templates/js/translated/order.js:2080 templates/js/translated/order.js:2161
-#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564
-#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936
-#: templates/js/translated/stock.js:1807 templates/js/translated/stock.js:2694
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700
+#: templates/js/translated/build.js:1310 templates/js/translated/order.js:611
+#: templates/js/translated/order.js:2049 templates/js/translated/order.js:2160
+#: templates/js/translated/order.js:2168 templates/js/translated/order.js:2249
+#: templates/js/translated/part.js:179 templates/js/translated/stock.js:520
+#: templates/js/translated/stock.js:685 templates/js/translated/stock.js:892
+#: templates/js/translated/stock.js:1763 templates/js/translated/stock.js:2650
msgid "Location"
msgstr "Locatie"
@@ -1058,10 +1058,10 @@ msgstr ""
#: build/serializers.py:377 build/templates/build/build_base.html:142
#: build/templates/build/detail.html:63 order/models.py:579
#: order/serializers.py:290 stock/templates/stock/item_base.html:182
-#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1954
-#: templates/js/translated/order.js:656 templates/js/translated/order.js:915
-#: templates/js/translated/order.js:1371 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2771 templates/js/translated/stock.js:2920
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2007
+#: templates/js/translated/order.js:716 templates/js/translated/order.js:975
+#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2727 templates/js/translated/stock.js:2876
msgid "Status"
msgstr "Status"
@@ -1073,7 +1073,7 @@ msgstr ""
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:445 templates/js/translated/build.js:150
+#: build/serializers.py:445 templates/js/translated/build.js:151
msgid "Required stock has not been fully allocated"
msgstr ""
@@ -1085,7 +1085,7 @@ msgstr ""
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:461 templates/js/translated/build.js:154
+#: build/serializers.py:461 templates/js/translated/build.js:155
msgid "Required build quantity has not been completed"
msgstr ""
@@ -1097,8 +1097,8 @@ msgstr ""
msgid "No build outputs have been created for this build order"
msgstr ""
-#: build/serializers.py:501 build/serializers.py:550 part/models.py:2831
-#: part/models.py:2990
+#: build/serializers.py:501 build/serializers.py:550 part/models.py:2846
+#: part/models.py:3005
msgid "BOM Item"
msgstr ""
@@ -1135,6 +1135,26 @@ msgstr ""
msgid "Allocation items must be provided"
msgstr ""
+#: build/serializers.py:730
+msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
+msgstr ""
+
+#: build/serializers.py:735
+msgid "Interchangeable Stock"
+msgstr ""
+
+#: build/serializers.py:736
+msgid "Stock items in multiple locations can be used interchangeably"
+msgstr ""
+
+#: build/serializers.py:741
+msgid "Substitute Stock"
+msgstr ""
+
+#: build/serializers.py:742
+msgid "Allow allocation of substitute parts"
+msgstr ""
+
#: build/tasks.py:98
msgid "Stock required for build order"
msgstr ""
@@ -1206,9 +1226,9 @@ msgstr "Voorraad is niet volledig toegewezen aan deze productie-opdracht"
#: order/templates/order/order_base.html:156
#: order/templates/order/sales_order_base.html:163
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1994 templates/js/translated/order.js:932
-#: templates/js/translated/order.js:1204 templates/js/translated/order.js:1387
-#: templates/js/translated/order.js:2330 templates/js/translated/part.js:910
+#: templates/js/translated/build.js:2047 templates/js/translated/order.js:992
+#: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475
+#: templates/js/translated/order.js:2418 templates/js/translated/part.js:911
msgid "Target Date"
msgstr "Streefdatum"
@@ -1230,7 +1250,7 @@ msgstr "Achterstallig"
#: build/templates/build/build_base.html:163
#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
#: order/templates/order/sales_order_base.html:170
-#: templates/js/translated/build.js:1940
+#: templates/js/translated/build.js:1993
#: templates/js/translated/table_filters.js:365
msgid "Completed"
msgstr "Voltooid"
@@ -1242,7 +1262,7 @@ msgstr "Voltooid"
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:286
-#: templates/js/translated/order.js:1326 templates/js/translated/stock.js:2436
+#: templates/js/translated/order.js:1414 templates/js/translated/stock.js:2392
msgid "Sales Order"
msgstr "Verkooporder"
@@ -1277,7 +1297,7 @@ msgid "Stock can be taken from any available location."
msgstr ""
#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133
-#: templates/js/translated/order.js:657 templates/js/translated/order.js:1246
+#: templates/js/translated/order.js:717 templates/js/translated/order.js:1333
msgid "Destination"
msgstr "Bestemming"
@@ -1285,13 +1305,13 @@ msgstr "Bestemming"
msgid "Destination location not specified"
msgstr "Bestemmingslocatie niet opgegeven"
-#: build/templates/build/detail.html:74 templates/js/translated/build.js:929
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:930
msgid "Allocated Parts"
msgstr "Toegewezen onderdelen"
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:310
-#: templates/js/translated/stock.js:1796 templates/js/translated/stock.js:2927
+#: templates/js/translated/stock.js:1752 templates/js/translated/stock.js:2883
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:238
msgid "Batch"
@@ -1300,7 +1320,7 @@ msgstr "Batch"
#: build/templates/build/detail.html:127
#: order/templates/order/order_base.html:143
#: order/templates/order/sales_order_base.html:157
-#: templates/js/translated/build.js:1962
+#: templates/js/translated/build.js:2015
msgid "Created"
msgstr "Gecreëerd"
@@ -1320,7 +1340,7 @@ msgstr ""
msgid "Allocate Stock to Build"
msgstr "Voorraad toewijzen aan Product"
-#: build/templates/build/detail.html:177 templates/js/translated/build.js:1484
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1485
msgid "Unallocate stock"
msgstr "Niet toegewezen voorraad"
@@ -1329,111 +1349,119 @@ msgid "Unallocate Stock"
msgstr "Niet toegewezen voorraad"
#: build/templates/build/detail.html:180
-msgid "Allocate stock to build"
-msgstr "Voorraad toewijzen aan product"
+msgid "Automatically allocate stock to build"
+msgstr ""
-#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
+#: build/templates/build/detail.html:181
+msgid "Auto Allocate"
+msgstr ""
+
+#: build/templates/build/detail.html:183
+msgid "Manually allocate stock to build"
+msgstr ""
+
+#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8
msgid "Allocate Stock"
msgstr ""
-#: build/templates/build/detail.html:184
+#: build/templates/build/detail.html:187
msgid "Order required parts"
msgstr ""
-#: build/templates/build/detail.html:185
+#: build/templates/build/detail.html:188
#: company/templates/company/detail.html:38
#: company/templates/company/detail.html:85 order/views.py:463
-#: part/templates/part/category.html:177
+#: part/templates/part/category.html:174
msgid "Order Parts"
msgstr "Onderdelen bestellen"
-#: build/templates/build/detail.html:197
+#: build/templates/build/detail.html:200
msgid "Untracked stock has been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:201
+#: build/templates/build/detail.html:204
msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:208
+#: build/templates/build/detail.html:211
msgid "Allocate selected items"
msgstr "Geselecteerde items toewijzen"
-#: build/templates/build/detail.html:218
+#: build/templates/build/detail.html:221
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:230
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:231
+#: build/templates/build/detail.html:234
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:232
+#: build/templates/build/detail.html:235
msgid "New Build Output"
msgstr ""
-#: build/templates/build/detail.html:246
+#: build/templates/build/detail.html:249
msgid "Output Actions"
msgstr ""
-#: build/templates/build/detail.html:250
+#: build/templates/build/detail.html:253
msgid "Complete selected build outputs"
msgstr ""
-#: build/templates/build/detail.html:251
+#: build/templates/build/detail.html:254
msgid "Complete outputs"
msgstr ""
-#: build/templates/build/detail.html:253
+#: build/templates/build/detail.html:256
msgid "Delete selected build outputs"
msgstr ""
-#: build/templates/build/detail.html:254
+#: build/templates/build/detail.html:257
msgid "Delete outputs"
msgstr ""
-#: build/templates/build/detail.html:270
+#: build/templates/build/detail.html:273
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19
+#: build/templates/build/detail.html:285 build/templates/build/sidebar.html:19
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:107
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:222
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217
#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:105
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr "Bijlagen"
-#: build/templates/build/detail.html:298
+#: build/templates/build/detail.html:301
msgid "Build Notes"
msgstr "Bouw notities"
-#: build/templates/build/detail.html:302 build/templates/build/detail.html:478
-#: company/templates/company/detail.html:188
-#: company/templates/company/detail.html:215
+#: build/templates/build/detail.html:305 build/templates/build/detail.html:481
+#: company/templates/company/detail.html:190
+#: company/templates/company/detail.html:217
#: order/templates/order/purchase_order_detail.html:80
#: order/templates/order/purchase_order_detail.html:108
#: order/templates/order/sales_order_detail.html:127
#: order/templates/order/sales_order_detail.html:186
-#: part/templates/part/detail.html:150 stock/templates/stock/item.html:125
+#: part/templates/part/detail.html:145 stock/templates/stock/item.html:125
#: stock/templates/stock/item.html:223
msgid "Edit Notes"
msgstr "Notities Bewerken"
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:519
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:520
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:329
+#: build/templates/build/index.html:18 part/templates/part/detail.html:322
msgid "New Build Order"
msgstr ""
@@ -1658,7 +1686,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:732 part/models.py:2527 report/models.py:187
+#: common/models.py:732 part/models.py:2541 report/models.py:187
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:417
msgid "Template"
@@ -1668,7 +1696,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:739 part/models.py:951 templates/js/translated/bom.js:1300
+#: common/models.py:739 part/models.py:951 templates/js/translated/bom.js:1305
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:429
msgid "Assembly"
@@ -2243,7 +2271,7 @@ msgstr ""
#: common/models.py:1325 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:937 templates/js/translated/part.js:1889
+#: templates/js/translated/part.js:938 templates/js/translated/part.js:1890
msgid "Price"
msgstr ""
@@ -2337,14 +2365,14 @@ msgstr ""
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
-#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:210
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208
#: templates/patterns/wizard/upload.html:35
msgid "Upload File"
msgstr ""
#: common/views.py:94 order/views.py:244
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:211
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:209
#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
@@ -2472,7 +2500,7 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:508
+#: company/models.py:320 company/models.py:535 stock/models.py:560
#: stock/templates/stock/item_base.html:137 templates/js/translated/bom.js:541
msgid "Base Part"
msgstr ""
@@ -2499,8 +2527,8 @@ msgstr "Fabrikant selecteren"
#: company/models.py:342 company/templates/company/manufacturer_part.html:96
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1124
-#: templates/js/translated/part.js:245 templates/js/translated/part.js:895
+#: templates/js/translated/company.js:818 templates/js/translated/order.js:1211
+#: templates/js/translated/part.js:245 templates/js/translated/part.js:896
msgid "MPN"
msgstr "MPN"
@@ -2529,8 +2557,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2064 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1331
+#: stock/models.py:2116 templates/js/translated/company.js:647
+#: templates/js/translated/part.js:716 templates/js/translated/stock.js:1287
msgid "Value"
msgstr ""
@@ -2538,10 +2566,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:945 part/models.py:2495
+#: company/models.py:429 part/models.py:945 part/models.py:2509
#: part/templates/part/part_base.html:288
#: templates/InvenTree/settings/settings.html:324
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:721
+#: templates/js/translated/company.js:653 templates/js/translated/part.js:722
msgid "Units"
msgstr ""
@@ -2559,8 +2587,8 @@ msgstr "Gekoppeld fabrikant onderdeel moet verwijzen naar hetzelfde basis onderd
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237
#: part/bom.py:265 stock/templates/stock/item_base.html:376
#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:898
-#: templates/js/translated/part.js:215 templates/js/translated/part.js:863
+#: templates/js/translated/company.js:774 templates/js/translated/order.js:958
+#: templates/js/translated/part.js:215 templates/js/translated/part.js:864
#: templates/js/translated/table_filters.js:388
msgid "Supplier"
msgstr ""
@@ -2570,8 +2598,8 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1111
-#: templates/js/translated/part.js:226 templates/js/translated/part.js:881
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198
+#: templates/js/translated/part.js:226 templates/js/translated/part.js:882
msgid "SKU"
msgstr ""
@@ -2592,7 +2620,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:119
-#: part/models.py:2719 part/templates/part/upload_bom.html:59
+#: part/models.py:2734 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409
msgid "Note"
@@ -2607,8 +2635,8 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:532 stock/templates/stock/item_base.html:317
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1931
+#: stock/models.py:584 stock/templates/stock/item_base.html:317
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1887
msgid "Packaging"
msgstr ""
@@ -2676,11 +2704,11 @@ msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:83 order/models.py:574
-#: order/templates/order/sales_order_base.html:115 stock/models.py:551
-#: stock/models.py:552 stock/serializers.py:683
+#: order/templates/order/sales_order_base.html:115 stock/models.py:603
+#: stock/models.py:604 stock/serializers.py:683
#: stock/templates/stock/item_base.html:269
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1348
-#: templates/js/translated/stock.js:2735
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1436
+#: templates/js/translated/stock.js:2691
#: templates/js/translated/table_filters.js:392
msgid "Customer"
msgstr ""
@@ -2711,7 +2739,7 @@ msgstr ""
#: company/templates/company/detail.html:20
#: company/templates/company/manufacturer_part.html:118
-#: part/templates/part/detail.html:367
+#: part/templates/part/detail.html:360
msgid "New Supplier Part"
msgstr ""
@@ -2719,14 +2747,14 @@ msgstr ""
#: company/templates/company/detail.html:79
#: company/templates/company/manufacturer_part.html:127
#: company/templates/company/manufacturer_part.html:156
-#: part/templates/part/category.html:171 part/templates/part/detail.html:376
-#: part/templates/part/detail.html:405
+#: part/templates/part/category.html:168 part/templates/part/detail.html:369
+#: part/templates/part/detail.html:398
msgid "Options"
msgstr ""
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177
+#: part/templates/part/category.html:174
msgid "Order parts"
msgstr ""
@@ -2748,7 +2776,7 @@ msgstr "Fabrikant onderdelen"
msgid "Create new manufacturer part"
msgstr "Maak nieuw fabrikant onderdeel"
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:395
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:388
msgid "New Manufacturer Part"
msgstr "Nieuw fabrikant onderdeel"
@@ -2762,7 +2790,7 @@ msgstr ""
#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:40
+#: part/templates/part/detail.html:80 part/templates/part/part_sidebar.html:40
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
@@ -2784,7 +2812,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:44
+#: part/templates/part/detail.html:103 part/templates/part/part_sidebar.html:44
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
@@ -2802,23 +2830,23 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/detail.html:168
-#: templates/js/translated/build.js:1281
+#: templates/js/translated/build.js:1282
msgid "Assigned Stock"
msgstr ""
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:186
msgid "Company Notes"
msgstr ""
-#: company/templates/company/detail.html:384
+#: company/templates/company/detail.html:380
#: company/templates/company/manufacturer_part.html:215
-#: part/templates/part/detail.html:449
+#: part/templates/part/detail.html:442
msgid "Delete Supplier Parts?"
msgstr ""
-#: company/templates/company/detail.html:385
+#: company/templates/company/detail.html:381
#: company/templates/company/manufacturer_part.html:216
-#: part/templates/part/detail.html:450
+#: part/templates/part/detail.html:443
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2835,7 +2863,7 @@ msgstr "Fabrikanten"
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:34
#: company/templates/company/supplier_part.html:159
-#: part/templates/part/detail.html:88 part/templates/part/part_base.html:76
+#: part/templates/part/detail.html:83 part/templates/part/part_base.html:76
msgid "Order part"
msgstr ""
@@ -2862,14 +2890,14 @@ msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
-#: part/templates/part/detail.html:378
+#: part/templates/part/detail.html:371
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
#: company/templates/company/manufacturer_part.html:158
#: company/templates/company/manufacturer_part.html:254
-#: part/templates/part/detail.html:378 part/templates/part/detail.html:407
+#: part/templates/part/detail.html:371 part/templates/part/detail.html:400
#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31
#: users/models.py:217
msgid "Delete"
@@ -2878,12 +2906,12 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:143
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:17
-#: part/templates/part/detail.html:196 part/templates/part/part_sidebar.html:9
+#: part/templates/part/detail.html:191 part/templates/part/part_sidebar.html:9
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:147
-#: part/templates/part/detail.html:201
+#: part/templates/part/detail.html:196
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:66
msgid "New Parameter"
@@ -2894,7 +2922,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:191
-#: part/templates/part/detail.html:908
+#: part/templates/part/detail.html:894
msgid "Add Parameter"
msgstr ""
@@ -2923,9 +2951,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:516
+#: company/templates/company/supplier_part.html:24 stock/models.py:568
#: stock/templates/stock/item_base.html:381
-#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1888
+#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1844
msgid "Supplier Part"
msgstr ""
@@ -2951,7 +2979,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:166
-#: templates/js/translated/stock.js:368
+#: templates/js/translated/stock.js:367
msgid "New Stock Item"
msgstr ""
@@ -2961,7 +2989,7 @@ msgid "Supplier Part Orders"
msgstr ""
#: company/templates/company/supplier_part.html:160
-#: part/templates/part/detail.html:89
+#: part/templates/part/detail.html:84
msgid "Order Part"
msgstr ""
@@ -2972,7 +3000,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1319
+#: part/templates/part/prices.html:271 part/views.py:1254
msgid "Add Price Break"
msgstr ""
@@ -2980,11 +3008,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1381
+#: company/templates/company/supplier_part.html:224 part/views.py:1316
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1367
+#: company/templates/company/supplier_part.html:238 part/views.py:1302
msgid "Edit Price Break"
msgstr ""
@@ -3002,10 +3030,10 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:150
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/bom.js:553 templates/js/translated/part.js:495
-#: templates/js/translated/part.js:630 templates/js/translated/part.js:1147
-#: templates/js/translated/part.js:1308 templates/js/translated/stock.js:935
-#: templates/js/translated/stock.js:1711 templates/navbar.html:28
+#: templates/js/translated/bom.js:553 templates/js/translated/part.js:496
+#: templates/js/translated/part.js:631 templates/js/translated/part.js:1148
+#: templates/js/translated/part.js:1309 templates/js/translated/stock.js:891
+#: templates/js/translated/stock.js:1667 templates/navbar.html:28
msgid "Stock"
msgstr ""
@@ -3028,7 +3056,7 @@ msgstr ""
#: stock/templates/stock/location.html:150
#: stock/templates/stock/location.html:162
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2641
+#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2597
#: templates/stats.html:105 templates/stats.html:114 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -3058,20 +3086,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:591
+#: company/views.py:129 part/views.py:589
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:623
+#: company/views.py:158 part/views.py:621
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:630
+#: company/views.py:165 part/views.py:628
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:639
+#: company/views.py:174 part/views.py:637
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3190,7 +3218,7 @@ msgid "Company from which the items are being ordered"
msgstr ""
#: order/models.py:231 order/templates/order/order_base.html:118
-#: templates/js/translated/order.js:907
+#: templates/js/translated/order.js:967
msgid "Supplier Reference"
msgstr ""
@@ -3247,7 +3275,7 @@ msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
#: order/models.py:589 order/models.py:1084
-#: templates/js/translated/order.js:1395 templates/js/translated/order.js:1546
+#: templates/js/translated/order.js:1483 templates/js/translated/order.js:1634
msgid "Shipment Date"
msgstr ""
@@ -3292,7 +3320,7 @@ msgid "Supplier part must match supplier"
msgstr ""
#: order/models.py:891 order/models.py:982 order/models.py:1078
-#: templates/js/translated/order.js:1937 templates/js/translated/stock.js:2403
+#: templates/js/translated/order.js:2025 templates/js/translated/stock.js:2359
msgid "Order"
msgstr ""
@@ -3300,8 +3328,8 @@ msgstr ""
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:331
-#: templates/js/translated/order.js:876 templates/js/translated/part.js:838
-#: templates/js/translated/stock.js:1865 templates/js/translated/stock.js:2716
+#: templates/js/translated/order.js:936 templates/js/translated/part.js:839
+#: templates/js/translated/stock.js:1821 templates/js/translated/stock.js:2672
msgid "Purchase Order"
msgstr ""
@@ -3310,8 +3338,8 @@ msgid "Supplier part"
msgstr ""
#: order/models.py:920 order/templates/order/order_base.html:163
-#: templates/js/translated/order.js:654 templates/js/translated/order.js:1226
-#: templates/js/translated/part.js:932 templates/js/translated/part.js:959
+#: templates/js/translated/order.js:714 templates/js/translated/order.js:1313
+#: templates/js/translated/part.js:933 templates/js/translated/part.js:960
#: templates/js/translated/table_filters.js:312
msgid "Received"
msgstr ""
@@ -3320,9 +3348,9 @@ msgstr ""
msgid "Number of items received"
msgstr ""
-#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:645
+#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:697
#: stock/serializers.py:170 stock/templates/stock/item_base.html:338
-#: templates/js/translated/stock.js:1919
+#: templates/js/translated/stock.js:1875
msgid "Purchase Price"
msgstr ""
@@ -3456,11 +3484,11 @@ msgstr ""
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:273 templates/js/translated/order.js:514
+#: order/serializers.py:273 templates/js/translated/order.js:574
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:281 templates/js/translated/order.js:525
+#: order/serializers.py:281 templates/js/translated/order.js:585
msgid "Enter serial numbers for incoming stock items"
msgstr ""
@@ -3578,7 +3606,7 @@ msgstr ""
#: order/templates/order/order_base.html:94
#: order/templates/order/sales_order_base.html:89
-#: templates/js/translated/stock.js:2459
+#: templates/js/translated/stock.js:2415
msgid "Order Status"
msgstr ""
@@ -3650,10 +3678,10 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/bom.js:76 templates/js/translated/build.js:380
-#: templates/js/translated/build.js:528 templates/js/translated/build.js:1547
-#: templates/js/translated/order.js:602 templates/js/translated/order.js:1605
-#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769
+#: templates/js/translated/bom.js:76 templates/js/translated/build.js:381
+#: templates/js/translated/build.js:529 templates/js/translated/build.js:1558
+#: templates/js/translated/order.js:662 templates/js/translated/order.js:1693
+#: templates/js/translated/stock.js:557 templates/js/translated/stock.js:725
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr ""
@@ -3717,8 +3745,8 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:940 templates/js/translated/order.js:1403
-#: templates/js/translated/order.js:1533
+#: templates/js/translated/order.js:1000 templates/js/translated/order.js:1491
+#: templates/js/translated/order.js:1621
msgid "Items"
msgstr ""
@@ -3752,9 +3780,9 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:27
-#: order/templates/order/purchase_order_detail.html:182
+#: order/templates/order/purchase_order_detail.html:166
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:245
+#: order/templates/order/sales_order_detail.html:233
msgid "Add Line Item"
msgstr ""
@@ -3794,7 +3822,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:122
-#: templates/js/translated/order.js:1361
+#: templates/js/translated/order.js:1449
msgid "Customer Reference"
msgstr ""
@@ -3827,7 +3855,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:48
-#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1465
+#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1466
msgid "Actions"
msgstr ""
@@ -3902,31 +3930,31 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:499
+#: part/api.py:502
msgid "Valid"
msgstr ""
-#: part/api.py:500
+#: part/api.py:503
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:505
+#: part/api.py:508
msgid "This option must be selected"
msgstr ""
-#: part/api.py:847
+#: part/api.py:866
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:851
+#: part/api.py:870
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:866
+#: part/api.py:885
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:897 part/api.py:901 part/api.py:916 part/api.py:920
+#: part/api.py:916 part/api.py:920 part/api.py:935 part/api.py:939
msgid "This field is required"
msgstr ""
@@ -3944,7 +3972,7 @@ msgid "Available Stock"
msgstr ""
#: part/bom.py:128 part/templates/part/part_base.html:203
-#: templates/js/translated/part.js:1323
+#: templates/js/translated/part.js:1324
msgid "On Order"
msgstr ""
@@ -3976,7 +4004,7 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:97 part/models.py:2571 part/templates/part/category.html:15
+#: part/models.py:97 part/models.py:2585 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -3993,7 +4021,7 @@ msgstr ""
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:37
-#: templates/js/translated/part.js:1685 templates/navbar.html:21
+#: templates/js/translated/part.js:1686 templates/navbar.html:21
#: templates/stats.html:92 templates/stats.html:101 users/models.py:41
msgid "Parts"
msgstr ""
@@ -4023,7 +4051,7 @@ msgstr ""
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:803 part/models.py:2624
+#: part/models.py:803 part/models.py:2638
msgid "Part name"
msgstr ""
@@ -4056,11 +4084,11 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:841 part/models.py:2321 part/models.py:2570
+#: part/models.py:841 part/models.py:2335 part/models.py:2584
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:223
-#: templates/js/translated/part.js:1290
+#: templates/js/translated/part.js:1291
msgid "Category"
msgstr ""
@@ -4069,8 +4097,8 @@ msgid "Part category"
msgstr ""
#: part/models.py:847 part/templates/part/part_base.html:274
-#: templates/js/translated/part.js:618 templates/js/translated/part.js:1243
-#: templates/js/translated/stock.js:1683
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:1244
+#: templates/js/translated/stock.js:1639
msgid "IPN"
msgstr ""
@@ -4083,7 +4111,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:855 part/templates/part/part_base.html:281
-#: report/models.py:200 templates/js/translated/part.js:622
+#: report/models.py:200 templates/js/translated/part.js:623
msgid "Revision"
msgstr ""
@@ -4175,301 +4203,309 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2371
+#: part/models.py:2385
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2388
+#: part/models.py:2402
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2408 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:1311
+#: part/models.py:2422 templates/js/translated/part.js:1737
+#: templates/js/translated/stock.js:1267
msgid "Test Name"
msgstr ""
-#: part/models.py:2409
+#: part/models.py:2423
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2414
+#: part/models.py:2428
msgid "Test Description"
msgstr ""
-#: part/models.py:2415
+#: part/models.py:2429
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2420 templates/js/translated/part.js:1745
+#: part/models.py:2434 templates/js/translated/part.js:1746
#: templates/js/translated/table_filters.js:276
msgid "Required"
msgstr ""
-#: part/models.py:2421
+#: part/models.py:2435
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2426 templates/js/translated/part.js:1753
+#: part/models.py:2440 templates/js/translated/part.js:1754
msgid "Requires Value"
msgstr ""
-#: part/models.py:2427
+#: part/models.py:2441
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2432 templates/js/translated/part.js:1760
+#: part/models.py:2446 templates/js/translated/part.js:1761
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2433
+#: part/models.py:2447
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2444
+#: part/models.py:2458
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2480
+#: part/models.py:2494
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2488
+#: part/models.py:2502
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2495
+#: part/models.py:2509
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2525
+#: part/models.py:2539
msgid "Parent Part"
msgstr ""
-#: part/models.py:2527 part/models.py:2576 part/models.py:2577
+#: part/models.py:2541 part/models.py:2590 part/models.py:2591
#: templates/InvenTree/settings/settings.html:218
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2529
+#: part/models.py:2543
msgid "Data"
msgstr ""
-#: part/models.py:2529
+#: part/models.py:2543
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2581 templates/InvenTree/settings/settings.html:227
+#: part/models.py:2595 templates/InvenTree/settings/settings.html:227
msgid "Default Value"
msgstr ""
-#: part/models.py:2582
+#: part/models.py:2596
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2616
+#: part/models.py:2630
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2619 templates/js/translated/model_renderers.js:182
+#: part/models.py:2633 templates/js/translated/model_renderers.js:182
msgid "Part ID"
msgstr ""
-#: part/models.py:2620
+#: part/models.py:2634
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2623
+#: part/models.py:2637
msgid "Part Name"
msgstr ""
-#: part/models.py:2627
+#: part/models.py:2641
msgid "Part IPN"
msgstr ""
-#: part/models.py:2628
+#: part/models.py:2642
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2645
msgid "Level"
msgstr ""
-#: part/models.py:2632
+#: part/models.py:2646
msgid "BOM level"
msgstr ""
-#: part/models.py:2692
+#: part/models.py:2707
msgid "Select parent part"
msgstr ""
-#: part/models.py:2700
+#: part/models.py:2715
msgid "Sub part"
msgstr ""
-#: part/models.py:2701
+#: part/models.py:2716
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2707
+#: part/models.py:2722
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2709 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:791 templates/js/translated/bom.js:865
+#: part/models.py:2724 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2709
+#: part/models.py:2724
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2712 part/templates/part/upload_bom.html:55
+#: part/models.py:2727 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2713
+#: part/models.py:2728
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2716
+#: part/models.py:2731
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2719
+#: part/models.py:2734
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2721
+#: part/models.py:2736
msgid "Checksum"
msgstr ""
-#: part/models.py:2721
+#: part/models.py:2736
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2725 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:882
+#: part/models.py:2740 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:880
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2726
+#: part/models.py:2741
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2731 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:874
+#: part/models.py:2746 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:872
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2732
+#: part/models.py:2747
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2817 stock/models.py:394
+#: part/models.py:2832 stock/models.py:446
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2826 part/models.py:2828
+#: part/models.py:2841 part/models.py:2843
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2957
+#: part/models.py:2972
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2979
+#: part/models.py:2994
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2991
+#: part/models.py:3006
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2999
+#: part/models.py:3014
msgid "Substitute part"
msgstr ""
-#: part/models.py:3010
+#: part/models.py:3025
msgid "Part 1"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3029
msgid "Part 2"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3029
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3046
+#: part/models.py:3061
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
-#: part/serializers.py:667
+#: part/serializers.py:670
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:678
+#: part/serializers.py:681
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:679
+#: part/serializers.py:682
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:684
+#: part/serializers.py:687
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:685
+#: part/serializers.py:688
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:690
+#: part/serializers.py:693
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:691
+#: part/serializers.py:694
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:699
+msgid "Copy Substitute Parts"
+msgstr ""
+
+#: part/serializers.py:700
+msgid "Copy substitute parts when duplicate BOM items"
+msgstr ""
+
+#: part/serializers.py:744
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:735
+#: part/serializers.py:745
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:762
+#: part/serializers.py:772
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:805
+#: part/serializers.py:815
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:808
+#: part/serializers.py:818
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:811
+#: part/serializers.py:821
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:820
+#: part/serializers.py:830
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:828
+#: part/serializers.py:838
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:847
+#: part/serializers.py:857
msgid "At least one BOM item is required"
msgstr ""
@@ -4496,7 +4532,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:279
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:274
msgid "BOM actions"
msgstr ""
@@ -4548,7 +4584,7 @@ msgstr ""
msgid "Top level part category"
msgstr ""
-#: part/templates/part/category.html:114 part/templates/part/category.html:205
+#: part/templates/part/category.html:114 part/templates/part/category.html:202
#: part/templates/part/category_sidebar.html:7
msgid "Subcategories"
msgstr ""
@@ -4557,55 +4593,51 @@ msgstr ""
msgid "Parts (Including subcategories)"
msgstr ""
-#: part/templates/part/category.html:156
-msgid "Export Part Data"
-msgstr ""
-
-#: part/templates/part/category.html:157 part/templates/part/category.html:181
-msgid "Export"
-msgstr ""
-
-#: part/templates/part/category.html:160
+#: part/templates/part/category.html:157
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:161 templates/js/translated/bom.js:365
+#: part/templates/part/category.html:158 templates/js/translated/bom.js:365
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:175
+#: part/templates/part/category.html:172
msgid "Set category"
msgstr ""
-#: part/templates/part/category.html:175
+#: part/templates/part/category.html:172
msgid "Set Category"
msgstr ""
-#: part/templates/part/category.html:179
+#: part/templates/part/category.html:176
msgid "Print Labels"
msgstr ""
-#: part/templates/part/category.html:181
+#: part/templates/part/category.html:178
+msgid "Export"
+msgstr ""
+
+#: part/templates/part/category.html:178
msgid "Export Data"
msgstr ""
-#: part/templates/part/category.html:195
+#: part/templates/part/category.html:192
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:288
+#: part/templates/part/category.html:285
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:315
+#: part/templates/part/category.html:305
msgid "Create Part"
msgstr ""
-#: part/templates/part/category.html:318
+#: part/templates/part/category.html:308
msgid "Create another part after this one"
msgstr ""
-#: part/templates/part/category.html:319
+#: part/templates/part/category.html:309
msgid "Part created successfully"
msgstr ""
@@ -4676,155 +4708,150 @@ msgstr ""
msgid "Part Stock"
msgstr ""
-#: part/templates/part/detail.html:33
-#, python-format
-msgid "Showing stock for all variants of %(full_name)s"
-msgstr ""
-
-#: part/templates/part/detail.html:43
+#: part/templates/part/detail.html:38
msgid "Part Stock Allocations"
msgstr ""
-#: part/templates/part/detail.html:60
+#: part/templates/part/detail.html:55
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:65
+#: part/templates/part/detail.html:60
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:122
+#: part/templates/part/detail.html:117
msgid "Sales Order Allocations"
msgstr "Toewijzingen verkoopopdracht"
-#: part/templates/part/detail.html:168
+#: part/templates/part/detail.html:163
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:172
+#: part/templates/part/detail.html:167
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:173
+#: part/templates/part/detail.html:168
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:200
+#: part/templates/part/detail.html:195
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:237 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:52
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:241 part/templates/part/detail.html:242
+#: part/templates/part/detail.html:236 part/templates/part/detail.html:237
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:262 part/templates/part/part_sidebar.html:18
+#: part/templates/part/detail.html:257 part/templates/part/part_sidebar.html:18
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:267
+#: part/templates/part/detail.html:262
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:271 templates/js/translated/bom.js:283
+#: part/templates/part/detail.html:266 templates/js/translated/bom.js:283
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:268
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:283
+#: part/templates/part/detail.html:278
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:285 templates/js/translated/part.js:272
+#: part/templates/part/detail.html:279 templates/js/translated/part.js:272
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:287
+#: part/templates/part/detail.html:280
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:285
msgid "New BOM Item"
msgstr "Nieuw stuklijstitem"
-#: part/templates/part/detail.html:293
+#: part/templates/part/detail.html:286
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:306
+#: part/templates/part/detail.html:299
msgid "Assemblies"
msgstr "Samenstellingen"
-#: part/templates/part/detail.html:323
+#: part/templates/part/detail.html:316
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:348
+#: part/templates/part/detail.html:341
msgid "Build Order Allocations"
msgstr "Productie-opdracht toewijzingen"
-#: part/templates/part/detail.html:363
+#: part/templates/part/detail.html:356
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:391
+#: part/templates/part/detail.html:384
msgid "Part Manufacturers"
msgstr "Fabrikanten"
-#: part/templates/part/detail.html:407
+#: part/templates/part/detail.html:400
msgid "Delete manufacturer parts"
msgstr "Fabrikant onderdeel verwijderen"
-#: part/templates/part/detail.html:589
+#: part/templates/part/detail.html:582
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:590
+#: part/templates/part/detail.html:583
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:639
+#: part/templates/part/detail.html:632
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:696
+#: part/templates/part/detail.html:689
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:704
+#: part/templates/part/detail.html:697
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:801
+#: part/templates/part/detail.html:794
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:858
+#: part/templates/part/detail.html:844
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:971
+#: part/templates/part/detail.html:957
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:983
+#: part/templates/part/detail.html:969
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:995
+#: part/templates/part/detail.html:981
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1084
+#: part/templates/part/detail.html:1070
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4969,7 +4996,7 @@ msgstr ""
#: templates/js/translated/company.js:508
#: templates/js/translated/company.js:765
#: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:533 templates/js/translated/part.js:610
+#: templates/js/translated/part.js:534 templates/js/translated/part.js:611
msgid "Inactive"
msgstr ""
@@ -4983,7 +5010,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2356
+#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2444
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5000,12 +5027,12 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:903
+#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:901
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1154
-#: templates/js/translated/part.js:1327
+#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1155
+#: templates/js/translated/part.js:1328
msgid "Building"
msgstr ""
@@ -5057,7 +5084,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:857
+#: templates/js/translated/bom.js:855
msgid "No supplier pricing available"
msgstr ""
@@ -5177,7 +5204,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:851
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849
msgid "Supplier Cost"
msgstr ""
@@ -5199,7 +5226,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1390
+#: part/templates/part/prices.html:215 part/views.py:1325
msgid "Add Internal Price Break"
msgstr ""
@@ -5219,9 +5246,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813
-#: templates/js/translated/part.js:497 templates/js/translated/part.js:1144
-#: templates/js/translated/part.js:1331
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811
+#: templates/js/translated/part.js:498 templates/js/translated/part.js:1145
+#: templates/js/translated/part.js:1332
msgid "No Stock"
msgstr ""
@@ -5275,100 +5302,100 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:172
+#: part/templatetags/inventree_extras.py:174
msgid "Unknown database"
msgstr ""
-#: part/views.py:90
+#: part/views.py:88
msgid "Set Part Category"
msgstr ""
-#: part/views.py:140
+#: part/views.py:138
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:212
+#: part/views.py:210
msgid "Match References"
msgstr ""
-#: part/views.py:509
+#: part/views.py:507
msgid "None"
msgstr ""
-#: part/views.py:568
+#: part/views.py:566
msgid "Part QR Code"
msgstr ""
-#: part/views.py:670
+#: part/views.py:668
msgid "Select Part Image"
msgstr ""
-#: part/views.py:696
+#: part/views.py:694
msgid "Updated part image"
msgstr ""
-#: part/views.py:699
+#: part/views.py:697
msgid "Part image not found"
msgstr ""
-#: part/views.py:850
+#: part/views.py:785
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:857
+#: part/views.py:792
msgid "Part was deleted"
msgstr ""
-#: part/views.py:866
+#: part/views.py:801
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1015
+#: part/views.py:950
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1025
+#: part/views.py:960
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1032
+#: part/views.py:967
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1091 templates/js/translated/part.js:315
+#: part/views.py:1026 templates/js/translated/part.js:315
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1129
+#: part/views.py:1064
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1135
+#: part/views.py:1070
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1144
+#: part/views.py:1079
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1245
+#: part/views.py:1180
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1301
+#: part/views.py:1236
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1323
+#: part/views.py:1258
msgid "Added new price break"
msgstr ""
-#: part/views.py:1399
+#: part/views.py:1334
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1407
+#: part/views.py:1342
msgid "Delete Internal Price Break"
msgstr ""
@@ -5574,12 +5601,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:556 stock/templates/stock/item_base.html:151
-#: templates/js/translated/build.js:373 templates/js/translated/build.js:521
-#: templates/js/translated/build.js:919 templates/js/translated/build.js:1295
+#: stock/models.py:608 stock/templates/stock/item_base.html:151
+#: templates/js/translated/build.js:374 templates/js/translated/build.js:522
+#: templates/js/translated/build.js:920 templates/js/translated/build.js:1296
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:99 templates/js/translated/order.js:2062
-#: templates/js/translated/order.js:2151 templates/js/translated/stock.js:423
+#: templates/js/translated/order.js:99 templates/js/translated/order.js:2150
+#: templates/js/translated/order.js:2239 templates/js/translated/stock.js:422
msgid "Serial Number"
msgstr "Serienummer"
@@ -5588,19 +5615,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:2052
+#: stock/models.py:2104
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:2058
+#: stock/models.py:2110
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:50
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:924 templates/js/translated/stock.js:2657
+#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2613
msgid "Date"
msgstr ""
@@ -5618,26 +5645,26 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756
-#: templates/js/translated/stock.js:2910
+#: templates/js/translated/stock.js:542 templates/js/translated/stock.js:712
+#: templates/js/translated/stock.js:2866
msgid "Serial"
msgstr ""
-#: stock/api.py:501
+#: stock/api.py:503
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:508
+#: stock/api.py:510
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:533
+#: stock/api.py:535
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/forms.py:74 stock/forms.py:198 stock/models.py:613
+#: stock/forms.py:74 stock/forms.py:198 stock/models.py:665
#: stock/templates/stock/item_base.html:188
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1791
msgid "Expiry Date"
msgstr ""
@@ -5677,228 +5704,228 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:62 stock/models.py:650
+#: stock/models.py:62 stock/models.py:702
#: stock/templates/stock/item_base.html:402
msgid "Owner"
msgstr ""
-#: stock/models.py:63 stock/models.py:651
+#: stock/models.py:63 stock/models.py:703
msgid "Select Owner"
msgstr ""
-#: stock/models.py:375
+#: stock/models.py:427
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:463
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:421 stock/models.py:430
+#: stock/models.py:473 stock/models.py:482
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:422
+#: stock/models.py:474
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:444
+#: stock/models.py:496
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:450
+#: stock/models.py:502
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:457
+#: stock/models.py:509
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:500
+#: stock/models.py:552
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:509
+#: stock/models.py:561
msgid "Base part"
msgstr ""
-#: stock/models.py:517
+#: stock/models.py:569
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:523 stock/templates/stock/location.html:16
+#: stock/models.py:575 stock/templates/stock/location.html:16
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr "Voorraadlocatie"
-#: stock/models.py:526
+#: stock/models.py:578
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:585
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:539 stock/templates/stock/item_base.html:277
+#: stock/models.py:591 stock/templates/stock/item_base.html:277
msgid "Installed In"
msgstr ""
-#: stock/models.py:542
+#: stock/models.py:594
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:558
+#: stock/models.py:610
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:572
+#: stock/models.py:624
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:576
+#: stock/models.py:628
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:585
+#: stock/models.py:637
msgid "Source Build"
msgstr ""
-#: stock/models.py:587
+#: stock/models.py:639
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:598
+#: stock/models.py:650
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:601
+#: stock/models.py:653
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:607
+#: stock/models.py:659
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:614
+#: stock/models.py:666
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:627
+#: stock/models.py:679
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:627
+#: stock/models.py:679
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:637 stock/templates/stock/item.html:121
+#: stock/models.py:689 stock/templates/stock/item.html:121
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:646
+#: stock/models.py:698
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1171
+#: stock/models.py:1223
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1177
+#: stock/models.py:1229
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1183
+#: stock/models.py:1235
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1186
+#: stock/models.py:1238
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1189
+#: stock/models.py:1241
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1196
+#: stock/models.py:1248
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1267
+#: stock/models.py:1319
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1270
+#: stock/models.py:1322
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1273
+#: stock/models.py:1325
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1276
+#: stock/models.py:1328
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1279
+#: stock/models.py:1331
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1282
+#: stock/models.py:1334
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1289 stock/serializers.py:832
+#: stock/models.py:1341 stock/serializers.py:832
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1293
+#: stock/models.py:1345
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1297
+#: stock/models.py:1349
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1301
+#: stock/models.py:1353
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1473
+#: stock/models.py:1525
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1972
+#: stock/models.py:2024
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2029
+#: stock/models.py:2081
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2035
+#: stock/models.py:2087
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2053
+#: stock/models.py:2105
msgid "Test name"
msgstr ""
-#: stock/models.py:2059
+#: stock/models.py:2111
msgid "Test result"
msgstr ""
-#: stock/models.py:2065
+#: stock/models.py:2117
msgid "Test output value"
msgstr ""
-#: stock/models.py:2072
+#: stock/models.py:2124
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2078
+#: stock/models.py:2130
msgid "Test notes"
msgstr ""
@@ -5935,7 +5962,7 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:363 stock/views.py:1127
+#: stock/serializers.py:363 stock/views.py:1009
msgid "Serial numbers already exist"
msgstr ""
@@ -6052,11 +6079,11 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:147 templates/js/translated/stock.js:3019
+#: stock/templates/stock/item.html:147 templates/js/translated/stock.js:2975
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1479
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1435
msgid "Add Test Result"
msgstr ""
@@ -6070,7 +6097,7 @@ msgstr ""
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:46 templates/stock_table.html:24
+#: stock/templates/stock/item_base.html:46 templates/stock_table.html:21
msgid "Scan to Location"
msgstr "Scan naar locatie"
@@ -6083,15 +6110,15 @@ msgid "Stock adjustment actions"
msgstr ""
#: stock/templates/stock/item_base.html:69
-#: stock/templates/stock/location.html:52 templates/stock_table.html:50
+#: stock/templates/stock/location.html:52 templates/stock_table.html:47
msgid "Count stock"
msgstr "Voorraad tellen"
-#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48
+#: stock/templates/stock/item_base.html:72 templates/stock_table.html:45
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49
+#: stock/templates/stock/item_base.html:75 templates/stock_table.html:46
msgid "Remove stock"
msgstr ""
@@ -6100,11 +6127,11 @@ msgid "Serialize stock"
msgstr ""
#: stock/templates/stock/item_base.html:82
-#: stock/templates/stock/location.html:58 templates/stock_table.html:51
+#: stock/templates/stock/location.html:58 templates/stock_table.html:48
msgid "Transfer stock"
msgstr "Voorraad overzetten"
-#: stock/templates/stock/item_base.html:85 templates/stock_table.html:54
+#: stock/templates/stock/item_base.html:85 templates/stock_table.html:51
msgid "Assign to customer"
msgstr ""
@@ -6181,7 +6208,7 @@ msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:201
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1807
msgid "Last Updated"
msgstr ""
@@ -6218,7 +6245,7 @@ msgid "This stock item is serialized - it has a unique serial number and the qua
msgstr ""
#: stock/templates/stock/item_base.html:296
-#: templates/js/translated/build.js:1317
+#: templates/js/translated/build.js:1318
msgid "No location set"
msgstr "Geen Locatie ingesteld"
@@ -6320,11 +6347,11 @@ msgstr "Sublocaties"
msgid "Stock Locations"
msgstr "Voorraadlocaties"
-#: stock/templates/stock/location.html:185 templates/stock_table.html:30
+#: stock/templates/stock/location.html:185 templates/stock_table.html:27
msgid "Printing Actions"
msgstr "Afdrukacties"
-#: stock/templates/stock/location.html:189 templates/stock_table.html:34
+#: stock/templates/stock/location.html:189 templates/stock_table.html:31
msgid "Print labels"
msgstr "Labels afdrukken"
@@ -6348,7 +6375,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:749
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:631
msgid "Convert Stock Item"
msgstr ""
@@ -6369,95 +6396,95 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181 templates/js/translated/stock.js:139
+#: stock/views.py:152 templates/js/translated/stock.js:138
msgid "Edit Stock Location"
msgstr "Bewerk voorraadlocatie"
-#: stock/views.py:288 stock/views.py:728 stock/views.py:854 stock/views.py:1136
+#: stock/views.py:259 stock/views.py:610 stock/views.py:736 stock/views.py:1018
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:274
msgid "Stock Location QR code"
msgstr "QR-code voor voorraadlocatie"
-#: stock/views.py:322
+#: stock/views.py:293
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:302
msgid "Specify a valid location"
msgstr "Specificeer een geldige locatie"
-#: stock/views.py:342
+#: stock/views.py:313
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:353
+#: stock/views.py:324
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:370
+#: stock/views.py:341
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:371
+#: stock/views.py:342
msgid "Check the confirmation box"
msgstr ""
-#: stock/views.py:475
+#: stock/views.py:357
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:500
+#: stock/views.py:382
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:597 templates/js/translated/stock.js:1074
+#: stock/views.py:479 templates/js/translated/stock.js:1030
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:608
+#: stock/views.py:490
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:630 templates/js/translated/stock.js:332
+#: stock/views.py:512 templates/js/translated/stock.js:331
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:780
+#: stock/views.py:662
msgid "Create new Stock Location"
msgstr "Maak nieuwe voorraadlocatie"
-#: stock/views.py:881
+#: stock/views.py:763
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1023 templates/js/translated/stock.js:312
+#: stock/views.py:905 templates/js/translated/stock.js:311
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1105
+#: stock/views.py:987
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1205
+#: stock/views.py:1087
msgid "Delete Stock Location"
msgstr "Verwijder voorraadlocatie"
-#: stock/views.py:1218
+#: stock/views.py:1100
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1229
+#: stock/views.py:1111
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1236
+#: stock/views.py:1118
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1245
+#: stock/views.py:1127
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -7381,14 +7408,14 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1335
+#: templates/js/translated/bom.js:1340
msgid "Required Quantity"
msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:804 templates/js/translated/build.js:1411
-#: templates/js/translated/build.js:2057
+#: templates/js/translated/bom.js:802 templates/js/translated/build.js:1412
+#: templates/js/translated/build.js:2110
#: templates/js/translated/table_filters.js:178
msgid "Available"
msgstr "Beschikbaar"
@@ -7580,7 +7607,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:982
msgid "Remove stock item"
msgstr ""
@@ -7635,12 +7662,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286
-#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518
+#: templates/js/translated/order.js:429 templates/js/translated/tables.js:53
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519
+#: templates/js/translated/order.js:430
msgid "Select file format"
msgstr ""
@@ -7716,275 +7743,307 @@ msgstr ""
msgid "Edit BOM Item Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:741
+#: templates/js/translated/bom.js:739
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:745 templates/js/translated/build.js:1393
+#: templates/js/translated/bom.js:743 templates/js/translated/build.js:1394
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:750
+#: templates/js/translated/bom.js:748
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:822
+#: templates/js/translated/bom.js:820
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:837
+#: templates/js/translated/bom.js:835
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:844
+#: templates/js/translated/bom.js:842
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:893 templates/js/translated/bom.js:982
+#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:953
+#: templates/js/translated/bom.js:951
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:955
+#: templates/js/translated/bom.js:953
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:957
+#: templates/js/translated/bom.js:955
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138
+#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:961 templates/js/translated/bom.js:1121
+#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1060 templates/js/translated/build.js:1137
+#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1138
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1116
+#: templates/js/translated/bom.js:1121
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:1318 templates/js/translated/build.js:1377
+#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1378
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1340
+#: templates/js/translated/bom.js:1345
msgid "Inherited from parent BOM"
msgstr ""
-#: templates/js/translated/build.js:85
+#: templates/js/translated/build.js:86
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:119
+#: templates/js/translated/build.js:120
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:140
+#: templates/js/translated/build.js:141
msgid "Build order is ready to be completed"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:146
msgid "Build Order is incomplete"
msgstr "Productie-opdracht is onvolledig"
-#: templates/js/translated/build.js:173
+#: templates/js/translated/build.js:174
msgid "Complete Build Order"
msgstr ""
-#: templates/js/translated/build.js:214 templates/js/translated/stock.js:92
-#: templates/js/translated/stock.js:181
+#: templates/js/translated/build.js:215 templates/js/translated/stock.js:91
+#: templates/js/translated/stock.js:180
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:216 templates/js/translated/stock.js:94
-#: templates/js/translated/stock.js:183
+#: templates/js/translated/build.js:217 templates/js/translated/stock.js:93
+#: templates/js/translated/stock.js:182
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/build.js:225
+#: templates/js/translated/build.js:226
msgid "The Bill of Materials contains trackable parts"
msgstr "De stuklijst bevat traceerbare onderdelen"
-#: templates/js/translated/build.js:226
+#: templates/js/translated/build.js:227
msgid "Build outputs must be generated individually"
msgstr ""
-#: templates/js/translated/build.js:234
+#: templates/js/translated/build.js:235
msgid "Trackable parts can have serial numbers specified"
msgstr "Traceerbare onderdelen kunnen een serienummer hebben"
-#: templates/js/translated/build.js:235
+#: templates/js/translated/build.js:236
msgid "Enter serial numbers to generate multiple single build outputs"
msgstr "Voer serienummers in om meerdere bouw-outputs te genereren"
-#: templates/js/translated/build.js:242
+#: templates/js/translated/build.js:243
msgid "Create Build Output"
msgstr ""
-#: templates/js/translated/build.js:273
+#: templates/js/translated/build.js:274
msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:284
+#: templates/js/translated/build.js:285
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:293
+#: templates/js/translated/build.js:294
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:301
+#: templates/js/translated/build.js:302
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:324
+#: templates/js/translated/build.js:325
msgid "Are you sure you wish to unallocate stock items from this build?"
msgstr ""
-#: templates/js/translated/build.js:342
+#: templates/js/translated/build.js:343
msgid "Unallocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:360 templates/js/translated/build.js:508
+#: templates/js/translated/build.js:361 templates/js/translated/build.js:509
msgid "Select Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:361 templates/js/translated/build.js:509
+#: templates/js/translated/build.js:362 templates/js/translated/build.js:510
msgid "At least one build output must be selected"
msgstr ""
-#: templates/js/translated/build.js:415 templates/js/translated/build.js:563
+#: templates/js/translated/build.js:416 templates/js/translated/build.js:564
msgid "Output"
msgstr ""
-#: templates/js/translated/build.js:431
+#: templates/js/translated/build.js:432
msgid "Complete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:576
+#: templates/js/translated/build.js:577
msgid "Delete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:665
+#: templates/js/translated/build.js:666
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:703 templates/js/translated/order.js:1965
+#: templates/js/translated/build.js:704 templates/js/translated/order.js:2053
msgid "Location not specified"
msgstr "Locatie is niet opgegeven"
-#: templates/js/translated/build.js:885
+#: templates/js/translated/build.js:886
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1334 templates/js/translated/build.js:2068
-#: templates/js/translated/order.js:2099
+#: templates/js/translated/build.js:1335 templates/js/translated/build.js:2121
+#: templates/js/translated/order.js:2187
msgid "Edit stock allocation"
msgstr "Voorraadtoewijzing bewerken"
-#: templates/js/translated/build.js:1336 templates/js/translated/build.js:2069
-#: templates/js/translated/order.js:2100
+#: templates/js/translated/build.js:1337 templates/js/translated/build.js:2122
+#: templates/js/translated/order.js:2188
msgid "Delete stock allocation"
msgstr "Voorraadtoewijzing verwijderen"
-#: templates/js/translated/build.js:1354
+#: templates/js/translated/build.js:1355
msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:1364
+#: templates/js/translated/build.js:1365
msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:1389
+#: templates/js/translated/build.js:1390
msgid "Substitute parts available"
msgstr ""
-#: templates/js/translated/build.js:1406
+#: templates/js/translated/build.js:1407
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1416 templates/js/translated/build.js:1656
-#: templates/js/translated/build.js:2064 templates/js/translated/order.js:2366
+#: templates/js/translated/build.js:1417 templates/js/translated/build.js:1667
+#: templates/js/translated/build.js:2117 templates/js/translated/order.js:2454
msgid "Allocated"
msgstr "Toegewezen"
-#: templates/js/translated/build.js:1472 templates/js/translated/order.js:2446
+#: templates/js/translated/build.js:1473 templates/js/translated/order.js:2534
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:1476 templates/stock_table.html:53
+#: templates/js/translated/build.js:1477 templates/stock_table.html:50
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1479 templates/js/translated/order.js:2439
+#: templates/js/translated/build.js:1480 templates/js/translated/order.js:2527
msgid "Allocate stock"
msgstr "Voorraad toewijzen"
-#: templates/js/translated/build.js:1558 templates/js/translated/order.js:1616
-msgid "Specify stock allocation quantity"
-msgstr ""
-
-#: templates/js/translated/build.js:1629 templates/js/translated/label.js:134
-#: templates/js/translated/order.js:1667 templates/js/translated/report.js:225
+#: templates/js/translated/build.js:1519 templates/js/translated/label.js:134
+#: templates/js/translated/order.js:1755 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr "Onderdelen selecteren"
-#: templates/js/translated/build.js:1630 templates/js/translated/order.js:1668
+#: templates/js/translated/build.js:1520 templates/js/translated/order.js:1756
msgid "You must select at least one part to allocate"
msgstr "Er moet op zijn minst één onderdeel toegewezen worden"
-#: templates/js/translated/build.js:1644 templates/js/translated/order.js:1682
+#: templates/js/translated/build.js:1569 templates/js/translated/order.js:1704
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:1640
+msgid "All Parts Allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:1641
+msgid "All selected parts have been fully allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:1655 templates/js/translated/order.js:1770
msgid "Select source location (leave blank to take from all locations)"
msgstr "Selecteer bron locatie (laat het veld leeg om iedere locatie te gebruiken)"
-#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1717
+#: templates/js/translated/build.js:1684 templates/js/translated/order.js:1805
msgid "Confirm stock allocation"
msgstr "Bevestig de voorraadtoewijzing"
-#: templates/js/translated/build.js:1674
+#: templates/js/translated/build.js:1685
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1730
+#: templates/js/translated/build.js:1696 templates/js/translated/order.js:1818
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1757 templates/js/translated/order.js:1807
+#: templates/js/translated/build.js:1768 templates/js/translated/order.js:1895
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1875
+#: templates/js/translated/build.js:1865
+msgid "Automatic Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1866
+msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
+msgstr ""
+
+#: templates/js/translated/build.js:1868
+msgid "If a location is specifed, stock will only be allocated from that location"
+msgstr ""
+
+#: templates/js/translated/build.js:1869
+msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
+msgstr ""
+
+#: templates/js/translated/build.js:1870
+msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
+msgstr ""
+
+#: templates/js/translated/build.js:1890
+msgid "Allocate Stock Items"
+msgstr ""
+
+#: templates/js/translated/build.js:1928
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1892 templates/js/translated/part.js:1235
-#: templates/js/translated/part.js:1646 templates/js/translated/stock.js:1643
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/build.js:1945 templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1647 templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:2567
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1912
+#: templates/js/translated/build.js:1965
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1976 templates/js/translated/stock.js:2823
+#: templates/js/translated/build.js:2029 templates/js/translated/stock.js:2779
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1988
+#: templates/js/translated/build.js:2041
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:2045
+#: templates/js/translated/build.js:2098
msgid "No parts allocated for"
msgstr ""
@@ -8049,34 +8108,34 @@ msgid "No manufacturer parts found"
msgstr "Geen fabricage onderdelen gevonden"
#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:517
-#: templates/js/translated/part.js:602
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:518
+#: templates/js/translated/part.js:603
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:521
-#: templates/js/translated/part.js:606
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:522
+#: templates/js/translated/part.js:607
msgid "Assembled part"
msgstr "Samengesteld onderdeel"
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:696
+#: templates/js/translated/company.js:631 templates/js/translated/part.js:697
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:738
+#: templates/js/translated/company.js:668 templates/js/translated/part.js:739
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:739
+#: templates/js/translated/company.js:669 templates/js/translated/part.js:740
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:756
+#: templates/js/translated/company.js:688 templates/js/translated/part.js:757
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:768
+#: templates/js/translated/company.js:699 templates/js/translated/part.js:769
msgid "Delete Parameter"
msgstr ""
@@ -8085,12 +8144,12 @@ msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:429
+#: templates/js/translated/filters.js:441
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:430
+#: templates/js/translated/filters.js:442
msgid "false"
msgstr ""
@@ -8098,19 +8157,23 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:286
+#: templates/js/translated/filters.js:288
+msgid "Download data"
+msgstr ""
+
+#: templates/js/translated/filters.js:291
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:290
+#: templates/js/translated/filters.js:295
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:293
+#: templates/js/translated/filters.js:298
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:338
+#: templates/js/translated/filters.js:350
msgid "Create filter"
msgstr ""
@@ -8181,7 +8244,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1050
+#: templates/js/translated/stock.js:1006
msgid "Select Stock Items"
msgstr ""
@@ -8354,206 +8417,214 @@ msgstr ""
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:366
+#: templates/js/translated/order.js:426
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:460
+#: templates/js/translated/order.js:520
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:461
+#: templates/js/translated/order.js:521
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:481 templates/js/translated/order.js:580
+#: templates/js/translated/order.js:541 templates/js/translated/order.js:640
msgid "Add batch code"
msgstr ""
-#: templates/js/translated/order.js:487 templates/js/translated/order.js:591
+#: templates/js/translated/order.js:547 templates/js/translated/order.js:651
msgid "Add serial numbers"
msgstr ""
-#: templates/js/translated/order.js:499
+#: templates/js/translated/order.js:559
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:563 templates/js/translated/stock.js:2263
+#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2219
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:652
+#: templates/js/translated/order.js:712
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:653
+#: templates/js/translated/order.js:713
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:655
+#: templates/js/translated/order.js:715
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/order.js:674
+#: templates/js/translated/order.js:734
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:675
+#: templates/js/translated/order.js:735
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:865 templates/js/translated/part.js:809
+#: templates/js/translated/order.js:925 templates/js/translated/part.js:810
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:890 templates/js/translated/order.js:1338
+#: templates/js/translated/order.js:950 templates/js/translated/order.js:1426
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:1018 templates/js/translated/order.js:2496
+#: templates/js/translated/order.js:1074 templates/js/translated/order.js:2585
+msgid "Duplicate Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:1104 templates/js/translated/order.js:2607
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1030 templates/js/translated/order.js:2507
+#: templates/js/translated/order.js:1117 templates/js/translated/order.js:2618
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:1073
+#: templates/js/translated/order.js:1160
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:1100 templates/js/translated/order.js:2255
+#: templates/js/translated/order.js:1187 templates/js/translated/order.js:2343
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:1154 templates/js/translated/order.js:2280
-#: templates/js/translated/part.js:1863 templates/js/translated/part.js:2074
+#: templates/js/translated/order.js:1241 templates/js/translated/order.js:2368
+#: templates/js/translated/part.js:1864 templates/js/translated/part.js:2075
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1169 templates/js/translated/order.js:2296
+#: templates/js/translated/order.js:1256 templates/js/translated/order.js:2384
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:1210 templates/js/translated/order.js:2338
-#: templates/js/translated/part.js:918
+#: templates/js/translated/order.js:1297 templates/js/translated/order.js:2426
+#: templates/js/translated/part.js:919
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:1269 templates/js/translated/part.js:964
+#: templates/js/translated/order.js:1356 templates/js/translated/part.js:965
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1273 templates/js/translated/order.js:2452
+#: templates/js/translated/order.js:1360 templates/js/translated/order.js:2540
+msgid "Duplicate line item"
+msgstr ""
+
+#: templates/js/translated/order.js:1361 templates/js/translated/order.js:2541
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:1274 templates/js/translated/order.js:2456
+#: templates/js/translated/order.js:1362 templates/js/translated/order.js:2545
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1314
+#: templates/js/translated/order.js:1402
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1352
+#: templates/js/translated/order.js:1440
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1439
+#: templates/js/translated/order.js:1527
msgid "Edit shipment"
msgstr ""
-#: templates/js/translated/order.js:1442
+#: templates/js/translated/order.js:1530
msgid "Complete shipment"
msgstr ""
-#: templates/js/translated/order.js:1447
+#: templates/js/translated/order.js:1535
msgid "Delete shipment"
msgstr ""
-#: templates/js/translated/order.js:1467
+#: templates/js/translated/order.js:1555
msgid "Edit Shipment"
msgstr ""
-#: templates/js/translated/order.js:1484
+#: templates/js/translated/order.js:1572
msgid "Delete Shipment"
msgstr ""
-#: templates/js/translated/order.js:1518
+#: templates/js/translated/order.js:1606
msgid "No matching shipments found"
msgstr ""
-#: templates/js/translated/order.js:1528
+#: templates/js/translated/order.js:1616
msgid "Shipment Reference"
msgstr ""
-#: templates/js/translated/order.js:1552
+#: templates/js/translated/order.js:1640
msgid "Not shipped"
msgstr ""
-#: templates/js/translated/order.js:1558
+#: templates/js/translated/order.js:1646
msgid "Tracking"
msgstr ""
-#: templates/js/translated/order.js:1718
+#: templates/js/translated/order.js:1806
msgid "Allocate Stock Items to Sales Order"
msgstr ""
-#: templates/js/translated/order.js:1926
+#: templates/js/translated/order.js:2014
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:2015
+#: templates/js/translated/order.js:2103
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:2032
+#: templates/js/translated/order.js:2120
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:2033
+#: templates/js/translated/order.js:2121
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:2076 templates/js/translated/order.js:2165
-#: templates/js/translated/stock.js:1559
+#: templates/js/translated/order.js:2164 templates/js/translated/order.js:2253
+#: templates/js/translated/stock.js:1515
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/order.js:2084 templates/js/translated/order.js:2174
+#: templates/js/translated/order.js:2172 templates/js/translated/order.js:2262
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:2436
+#: templates/js/translated/order.js:2524
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:2442
+#: templates/js/translated/order.js:2530
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:2449 templates/js/translated/order.js:2616
+#: templates/js/translated/order.js:2537 templates/js/translated/order.js:2727
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:2460
+#: templates/js/translated/order.js:2549
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:2463
+#: templates/js/translated/order.js:2552
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:2522
+#: templates/js/translated/order.js:2633
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:2624
+#: templates/js/translated/order.js:2735
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:2638
+#: templates/js/translated/order.js:2749
msgid "No matching line items"
msgstr ""
@@ -8677,117 +8748,117 @@ msgstr ""
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:481
+#: templates/js/translated/part.js:482
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:509 templates/js/translated/part.js:594
+#: templates/js/translated/part.js:510 templates/js/translated/part.js:595
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:513 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:514 templates/js/translated/part.js:599
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:525
+#: templates/js/translated/part.js:526
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:529
+#: templates/js/translated/part.js:530
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:644
+#: templates/js/translated/part.js:645
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1034
+#: templates/js/translated/part.js:1035
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1058
+#: templates/js/translated/part.js:1059
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1125 templates/js/translated/part.js:1385
+#: templates/js/translated/part.js:1126 templates/js/translated/part.js:1386
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1295
+#: templates/js/translated/part.js:1296
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1318
+#: templates/js/translated/part.js:1319
#: templates/js/translated/table_filters.js:425
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1409 templates/js/translated/part.js:1581
-#: templates/js/translated/stock.js:2572
+#: templates/js/translated/part.js:1410 templates/js/translated/part.js:1582
+#: templates/js/translated/stock.js:2528
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1425
+#: templates/js/translated/part.js:1426
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1600 templates/js/translated/stock.js:2591
+#: templates/js/translated/part.js:1601 templates/js/translated/stock.js:2547
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1664
+#: templates/js/translated/part.js:1665
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1678 templates/js/translated/stock.js:2635
+#: templates/js/translated/part.js:1679 templates/js/translated/stock.js:2591
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1722
+#: templates/js/translated/part.js:1723
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1773 templates/js/translated/stock.js:1270
+#: templates/js/translated/part.js:1774 templates/js/translated/stock.js:1226
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1774 templates/js/translated/stock.js:1271
-#: templates/js/translated/stock.js:1517
+#: templates/js/translated/part.js:1775 templates/js/translated/stock.js:1227
+#: templates/js/translated/stock.js:1473
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1780
+#: templates/js/translated/part.js:1781
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1802
+#: templates/js/translated/part.js:1803
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1816
+#: templates/js/translated/part.js:1817
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1841
+#: templates/js/translated/part.js:1842
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1896
+#: templates/js/translated/part.js:1897
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1897
+#: templates/js/translated/part.js:1898
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1998
+#: templates/js/translated/part.js:1999
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:2017
+#: templates/js/translated/part.js:2018
msgid "Single Price Difference"
msgstr ""
@@ -8861,368 +8932,356 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:102
+#: templates/js/translated/stock.js:101
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:111
+#: templates/js/translated/stock.js:110
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:154
+#: templates/js/translated/stock.js:153
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:194
+#: templates/js/translated/stock.js:193
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:233
+#: templates/js/translated/stock.js:232
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/stock.js:238
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:381
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:395
+#: templates/js/translated/stock.js:394
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:420
+#: templates/js/translated/stock.js:419
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425
+#: templates/js/translated/stock.js:423 templates/js/translated/stock.js:424
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:441
+#: templates/js/translated/stock.js:440
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:461
+#: templates/js/translated/stock.js:460
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:470
+#: templates/js/translated/stock.js:469
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:515
-msgid "Export Stock"
-msgstr ""
-
-#: templates/js/translated/stock.js:526
-msgid "Include Sublocations"
-msgstr ""
-
-#: templates/js/translated/stock.js:527
-msgid "Include stock items in sublocations"
-msgstr ""
-
-#: templates/js/translated/stock.js:636
+#: templates/js/translated/stock.js:592
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:637
+#: templates/js/translated/stock.js:593
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:714
+#: templates/js/translated/stock.js:670
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:715
+#: templates/js/translated/stock.js:671
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:717
+#: templates/js/translated/stock.js:673
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:718
+#: templates/js/translated/stock.js:674
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:804
+#: templates/js/translated/stock.js:760
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:805
+#: templates/js/translated/stock.js:761
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:900
+#: templates/js/translated/stock.js:856
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:901
+#: templates/js/translated/stock.js:857
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:907
+#: templates/js/translated/stock.js:863
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:908
+#: templates/js/translated/stock.js:864
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:912
+#: templates/js/translated/stock.js:868
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:913
+#: templates/js/translated/stock.js:869
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:917
+#: templates/js/translated/stock.js:873
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:918 users/models.py:213
+#: templates/js/translated/stock.js:874 users/models.py:213
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:922
+#: templates/js/translated/stock.js:878
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1011
+#: templates/js/translated/stock.js:967
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1011
+#: templates/js/translated/stock.js:967
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1051
+#: templates/js/translated/stock.js:1007
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1209
+#: templates/js/translated/stock.js:1165
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1211
+#: templates/js/translated/stock.js:1167
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1216
+#: templates/js/translated/stock.js:1172
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1263
+#: templates/js/translated/stock.js:1219
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1266
+#: templates/js/translated/stock.js:1222
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1292
+#: templates/js/translated/stock.js:1248
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1348
+#: templates/js/translated/stock.js:1304
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1500
+#: templates/js/translated/stock.js:1456
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1522
+#: templates/js/translated/stock.js:1478
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1551
+#: templates/js/translated/stock.js:1507
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1511
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1563
+#: templates/js/translated/stock.js:1519
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1569
+#: templates/js/translated/stock.js:1525
msgid "No stock location set"
msgstr "Geen voorraadlocatie ingesteld"
-#: templates/js/translated/stock.js:1727
+#: templates/js/translated/stock.js:1683
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1732
+#: templates/js/translated/stock.js:1688
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1691
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1739
+#: templates/js/translated/stock.js:1695
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1741
+#: templates/js/translated/stock.js:1697
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1747
+#: templates/js/translated/stock.js:1703
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1749
+#: templates/js/translated/stock.js:1705
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1751
+#: templates/js/translated/stock.js:1707
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1756
+#: templates/js/translated/stock.js:1712
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1763
+#: templates/js/translated/stock.js:1719
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1765
+#: templates/js/translated/stock.js:1721
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1767
+#: templates/js/translated/stock.js:1723
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1771
+#: templates/js/translated/stock.js:1727
#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1821
+#: templates/js/translated/stock.js:1777
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1903
+#: templates/js/translated/stock.js:1859
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1941
+#: templates/js/translated/stock.js:1897
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1962 templates/js/translated/stock.js:2010
+#: templates/js/translated/stock.js:1918 templates/js/translated/stock.js:1966
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:2050
+#: templates/js/translated/stock.js:2006
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:2077
+#: templates/js/translated/stock.js:2033
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:2079
+#: templates/js/translated/stock.js:2035
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:2278
+#: templates/js/translated/stock.js:2234
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2292
+#: templates/js/translated/stock.js:2248
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2293
+#: templates/js/translated/stock.js:2249
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2472
+#: templates/js/translated/stock.js:2428
msgid "Allocated Quantity"
msgstr ""
-#: templates/js/translated/stock.js:2682
+#: templates/js/translated/stock.js:2638
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2707
+#: templates/js/translated/stock.js:2663
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2726
+#: templates/js/translated/stock.js:2682
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2745
+#: templates/js/translated/stock.js:2701
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2763
+#: templates/js/translated/stock.js:2719
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2786
+#: templates/js/translated/stock.js:2742
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2794
+#: templates/js/translated/stock.js:2750
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2835
+#: templates/js/translated/stock.js:2791
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2836
+#: templates/js/translated/stock.js:2792
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2887
+#: templates/js/translated/stock.js:2843
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2938
+#: templates/js/translated/stock.js:2894
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2974
+#: templates/js/translated/stock.js:2930
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2975
+#: templates/js/translated/stock.js:2931
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2977
+#: templates/js/translated/stock.js:2933
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2978
+#: templates/js/translated/stock.js:2934
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2979
+#: templates/js/translated/stock.js:2935
msgid "The Stock Item is serialized and does not belong to another item"
msgstr ""
-#: templates/js/translated/stock.js:2992
+#: templates/js/translated/stock.js:2948
msgid "Select part to install"
msgstr ""
@@ -9429,60 +9488,68 @@ msgstr ""
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:368
+#: templates/js/translated/tables.js:50
+msgid "Export Table Data"
+msgstr ""
+
+#: templates/js/translated/tables.js:54
+msgid "Select File Format"
+msgstr ""
+
+#: templates/js/translated/tables.js:433
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:371
+#: templates/js/translated/tables.js:436
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:376
+#: templates/js/translated/tables.js:441
msgid "Showing all rows"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:382 templates/search_form.html:6
+#: templates/js/translated/tables.js:447 templates/search_form.html:6
#: templates/search_form.html:7
msgid "Search"
msgstr ""
-#: templates/js/translated/tables.js:385
+#: templates/js/translated/tables.js:450
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:388
+#: templates/js/translated/tables.js:453
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:391
+#: templates/js/translated/tables.js:456
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:394
+#: templates/js/translated/tables.js:459
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:397
+#: templates/js/translated/tables.js:462
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:400
+#: templates/js/translated/tables.js:465
msgid "All"
msgstr ""
@@ -9586,63 +9653,59 @@ msgstr ""
msgid "Email settings not configured"
msgstr ""
-#: templates/stock_table.html:14
-msgid "Export Stock Information"
-msgstr ""
-
-#: templates/stock_table.html:20
+#: templates/stock_table.html:17
msgid "Barcode Actions"
msgstr ""
-#: templates/stock_table.html:36
+#: templates/stock_table.html:33
msgid "Print test reports"
msgstr ""
-#: templates/stock_table.html:43
+#: templates/stock_table.html:40
msgid "Stock Options"
msgstr ""
-#: templates/stock_table.html:48
+#: templates/stock_table.html:45
msgid "Add to selected stock items"
msgstr ""
-#: templates/stock_table.html:49
+#: templates/stock_table.html:46
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:50
+#: templates/stock_table.html:47
msgid "Stocktake selected stock items"
msgstr ""
-#: templates/stock_table.html:51
+#: templates/stock_table.html:48
msgid "Move selected stock items"
msgstr ""
-#: templates/stock_table.html:52
+#: templates/stock_table.html:49
msgid "Merge selected stock items"
msgstr ""
-#: templates/stock_table.html:52
+#: templates/stock_table.html:49
msgid "Merge stock"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:50
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:52
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:52
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:55
msgid "Delete selected items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:55
msgid "Delete stock"
msgstr ""
diff --git a/InvenTree/locale/no/LC_MESSAGES/django.po b/InvenTree/locale/no/LC_MESSAGES/django.po
index 7d88acee35..c9baec3131 100644
--- a/InvenTree/locale/no/LC_MESSAGES/django.po
+++ b/InvenTree/locale/no/LC_MESSAGES/django.po
@@ -1,10 +1,10 @@
-#: templates/js/translated/order.js:2090
+#: templates/js/translated/order.js:2178
msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-03-01 13:34+0000\n"
-"PO-Revision-Date: 2022-03-01 14:09\n"
+"POT-Creation-Date: 2022-03-07 04:31+0000\n"
+"PO-Revision-Date: 2022-03-07 04:47\n"
"Last-Translator: \n"
"Language-Team: Norwegian\n"
"Language: no_NO\n"
@@ -86,7 +86,7 @@ msgid "Duplicate serial: {sn}"
msgstr ""
#: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435
-#: stock/views.py:1101
+#: stock/views.py:983
msgid "Invalid quantity provided"
msgstr "Ugyldig mengde oppgitt"
@@ -114,100 +114,100 @@ msgstr "Ingen serienummer funnet"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Antall unike serienummer ({s}) må samsvare mengde ({q})"
-#: InvenTree/models.py:176
+#: InvenTree/models.py:185
msgid "Missing file"
msgstr "Fil mangler"
-#: InvenTree/models.py:177
+#: InvenTree/models.py:186
msgid "Missing external link"
msgstr "Mangler eksternlenke"
-#: InvenTree/models.py:188 stock/models.py:2071
+#: InvenTree/models.py:197 stock/models.py:2123
#: templates/js/translated/attachment.js:119
msgid "Attachment"
msgstr "Vedlegg"
-#: InvenTree/models.py:189
+#: InvenTree/models.py:198
msgid "Select file to attach"
msgstr "Velg fil å legge ved"
-#: InvenTree/models.py:195 company/models.py:131 company/models.py:348
+#: InvenTree/models.py:204 company/models.py:131 company/models.py:348
#: company/models.py:564 order/models.py:127 part/models.py:860
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1346
+#: templates/js/translated/company.js:829 templates/js/translated/part.js:1347
msgid "Link"
msgstr "Lenke"
-#: InvenTree/models.py:196 build/models.py:330 part/models.py:861
-#: stock/models.py:566
+#: InvenTree/models.py:205 build/models.py:332 part/models.py:861
+#: stock/models.py:618
msgid "Link to external URL"
msgstr "Lenke til ekstern URL"
-#: InvenTree/models.py:199 templates/js/translated/attachment.js:163
+#: InvenTree/models.py:208 templates/js/translated/attachment.js:163
msgid "Comment"
msgstr "Kommenter"
-#: InvenTree/models.py:199
+#: InvenTree/models.py:208
msgid "File comment"
msgstr "Kommentar til fil"
-#: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1277
+#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1277
#: common/models.py:1278 common/models.py:1506 common/models.py:1507
-#: part/models.py:2303 part/models.py:2323
+#: part/models.py:2317 part/models.py:2337
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2817
+#: templates/js/translated/stock.js:2773
msgid "User"
msgstr "Bruker"
-#: InvenTree/models.py:209
+#: InvenTree/models.py:218
msgid "upload date"
msgstr "opplastet dato"
-#: InvenTree/models.py:232
+#: InvenTree/models.py:241
msgid "Filename must not be empty"
msgstr "Filnavn må ikke være tom"
-#: InvenTree/models.py:255
+#: InvenTree/models.py:264
msgid "Invalid attachment directory"
msgstr "Ugyldig vedleggskatalog"
-#: InvenTree/models.py:265
+#: InvenTree/models.py:274
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Filnavn inneholder ugyldig tegn '{c}'"
-#: InvenTree/models.py:268
+#: InvenTree/models.py:277
msgid "Filename missing extension"
msgstr "Filnavn mangler filtype"
-#: InvenTree/models.py:275
+#: InvenTree/models.py:284
msgid "Attachment with this filename already exists"
msgstr "Vedlegg med dette filnavnet finnes allerede"
-#: InvenTree/models.py:282
+#: InvenTree/models.py:291
msgid "Error renaming file"
msgstr "Feil ved endring av navn"
-#: InvenTree/models.py:317
+#: InvenTree/models.py:326
msgid "Invalid choice"
msgstr "Ugyldig valg"
-#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1492
+#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1492
#: company/models.py:415 label/models.py:112 part/models.py:804
-#: part/models.py:2487 plugin/models.py:40 report/models.py:181
+#: part/models.py:2501 plugin/models.py:40 report/models.py:181
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:48
#: templates/InvenTree/settings/plugin.html:125
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:319
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:567
-#: templates/js/translated/part.js:706 templates/js/translated/part.js:1653
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/company.js:641 templates/js/translated/part.js:568
+#: templates/js/translated/part.js:707 templates/js/translated/part.js:1654
+#: templates/js/translated/stock.js:2573
msgid "Name"
msgstr "Navn"
-#: InvenTree/models.py:340 build/models.py:207
+#: InvenTree/models.py:349 build/models.py:209
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
@@ -219,28 +219,28 @@ msgstr "Navn"
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:92
#: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:765
-#: templates/js/translated/build.js:1920 templates/js/translated/company.js:345
+#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763
+#: templates/js/translated/build.js:1973 templates/js/translated/company.js:345
#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:911
-#: templates/js/translated/order.js:1105 templates/js/translated/order.js:1366
-#: templates/js/translated/part.js:626 templates/js/translated/part.js:1021
-#: templates/js/translated/part.js:1106 templates/js/translated/part.js:1276
-#: templates/js/translated/part.js:1672 templates/js/translated/part.js:1741
-#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2446
-#: templates/js/translated/stock.js:2629 templates/js/translated/stock.js:2667
+#: templates/js/translated/company.js:840 templates/js/translated/order.js:971
+#: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454
+#: templates/js/translated/part.js:627 templates/js/translated/part.js:1022
+#: templates/js/translated/part.js:1107 templates/js/translated/part.js:1277
+#: templates/js/translated/part.js:1673 templates/js/translated/part.js:1742
+#: templates/js/translated/stock.js:1656 templates/js/translated/stock.js:2402
+#: templates/js/translated/stock.js:2585 templates/js/translated/stock.js:2623
msgid "Description"
msgstr "Beskrivelse"
-#: InvenTree/models.py:341
+#: InvenTree/models.py:350
msgid "Description (optional)"
msgstr "Beskrivelse (valgfritt)"
-#: InvenTree/models.py:349
+#: InvenTree/models.py:358
msgid "parent"
msgstr "overkategori"
-#: InvenTree/serializers.py:65 part/models.py:2805
+#: InvenTree/serializers.py:65 part/models.py:2820
msgid "Must be a valid number"
msgstr "Nummer må være gyldig"
@@ -294,87 +294,87 @@ msgstr ""
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:665
msgid "German"
msgstr "Tysk"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:666
msgid "Greek"
msgstr "Gresk"
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:667
msgid "English"
msgstr "Engelsk"
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:668
msgid "Spanish"
msgstr "Spansk"
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:669
msgid "Spanish (Mexican)"
msgstr "Spansk (Meksikansk)"
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:670
msgid "French"
msgstr "Fransk"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:671
msgid "Hebrew"
msgstr "Hebraisk"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:672
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:673
msgid "Italian"
msgstr "Italiensk"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:674
msgid "Japanese"
msgstr "Japansk"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:675
msgid "Korean"
msgstr "Koreansk"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:676
msgid "Dutch"
msgstr "Nederlandsk"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:677
msgid "Norwegian"
msgstr "Norsk"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:678
msgid "Polish"
msgstr "Polsk"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:679
msgid "Portugese"
msgstr "Portugesisk"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:680
msgid "Russian"
msgstr "Russisk"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:681
msgid "Swedish"
msgstr "Svensk"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:682
msgid "Thai"
msgstr "Thailandsk"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:683
msgid "Turkish"
msgstr "Tyrkisk"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:684
msgid "Vietnamese"
msgstr "Vietnamesisk"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:685
msgid "Chinese"
msgstr "Kinesisk"
@@ -421,7 +421,7 @@ msgid "Returned"
msgstr "Returnert"
#: InvenTree/status_codes.py:143 order/models.py:997
-#: templates/js/translated/order.js:2097 templates/js/translated/order.js:2394
+#: templates/js/translated/order.js:2185 templates/js/translated/order.js:2482
msgid "Shipped"
msgstr "Sendt"
@@ -501,7 +501,7 @@ msgstr "Delt fra overordnet element"
msgid "Split child item"
msgstr "Delt fra underelement"
-#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2204
+#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2160
msgid "Merged stock items"
msgstr "Sammenslått lagervare"
@@ -593,43 +593,43 @@ msgstr "Passordfeltene må samsvare"
msgid "System Information"
msgstr "Systeminformasjon"
-#: barcodes/api.py:54 barcodes/api.py:152
+#: barcodes/api.py:55 barcodes/api.py:156
msgid "Must provide barcode_data parameter"
msgstr "Må oppgi gyldig strekkode_data parameter"
-#: barcodes/api.py:128
+#: barcodes/api.py:132
msgid "No match found for barcode data"
msgstr "Ingen treff funnet for strekkodedata"
-#: barcodes/api.py:130
+#: barcodes/api.py:134
msgid "Match found for barcode data"
msgstr "Treff funnet for strekkodedata"
-#: barcodes/api.py:155
+#: barcodes/api.py:159
msgid "Must provide stockitem parameter"
msgstr "Må oppgi lagervareparameter"
-#: barcodes/api.py:162
+#: barcodes/api.py:166
msgid "No matching stock item found"
msgstr "Ingen samsvarende lagervare funnet"
-#: barcodes/api.py:193
+#: barcodes/api.py:197
msgid "Barcode already matches Stock Item"
msgstr "Strekkoden samsvarer allerede med lagervare"
-#: barcodes/api.py:197
+#: barcodes/api.py:201
msgid "Barcode already matches Stock Location"
msgstr "Strekkode samsvarer allerede med lagerplassering"
-#: barcodes/api.py:201
+#: barcodes/api.py:205
msgid "Barcode already matches Part"
msgstr "Strekkode samsvarer allerede med delen"
-#: barcodes/api.py:207 barcodes/api.py:219
+#: barcodes/api.py:211 barcodes/api.py:223
msgid "Barcode hash already matches Stock Item"
msgstr "Strekkkoden hash samsvarer allerede med lagervare"
-#: barcodes/api.py:225
+#: barcodes/api.py:229
msgid "Barcode associated with Stock Item"
msgstr "Strekkode tilknyttet lagervare"
@@ -641,18 +641,18 @@ msgstr "Bekreft avbestilling"
msgid "Confirm build cancellation"
msgstr "Bekfret build avbestilling"
-#: build/models.py:133
+#: build/models.py:135
msgid "Invalid choice for parent build"
msgstr "Ugylding valg for overordnet build"
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:139 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:676 templates/js/translated/stock.js:2422
+#: templates/js/translated/build.js:677 templates/js/translated/stock.js:2378
msgid "Build Order"
msgstr "Build ordre"
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:140 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:92
#: order/templates/order/so_sidebar.html:13
@@ -662,41 +662,41 @@ msgstr "Build ordre"
msgid "Build Orders"
msgstr "Build Ordre"
-#: build/models.py:198
+#: build/models.py:200
msgid "Build Order Reference"
msgstr "Bygg ordrereferanse"
-#: build/models.py:199 order/models.py:213 order/models.py:563
-#: order/models.py:843 part/models.py:2716
+#: build/models.py:201 order/models.py:213 order/models.py:563
+#: order/models.py:843 part/models.py:2731
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:772 templates/js/translated/build.js:1401
-#: templates/js/translated/order.js:1136 templates/js/translated/order.js:2261
+#: templates/js/translated/bom.js:770 templates/js/translated/build.js:1402
+#: templates/js/translated/order.js:1223 templates/js/translated/order.js:2349
msgid "Reference"
msgstr "Referanse"
-#: build/models.py:210
+#: build/models.py:212
msgid "Brief description of the build"
msgstr "Kort beskrivelse av build"
-#: build/models.py:219 build/templates/build/build_base.html:169
+#: build/models.py:221 build/templates/build/build_base.html:169
#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr "Overordnet build"
-#: build/models.py:220
+#: build/models.py:222
msgid "BuildOrder to which this build is allocated"
msgstr "Build order som denne build er tildelt til"
-#: build/models.py:225 build/templates/build/build_base.html:77
+#: build/models.py:227 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
#: order/models.py:912 order/models.py:986
#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359
-#: part/models.py:2249 part/models.py:2265 part/models.py:2284
-#: part/models.py:2301 part/models.py:2403 part/models.py:2525
-#: part/models.py:2615 part/models.py:2691 part/models.py:2998
-#: part/serializers.py:666 part/templates/part/part_app_base.html:8
+#: part/models.py:2263 part/models.py:2279 part/models.py:2298
+#: part/models.py:2315 part/models.py:2417 part/models.py:2539
+#: part/models.py:2629 part/models.py:2706 part/models.py:3013
+#: part/serializers.py:669 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: part/templates/part/upload_bom.html:52
@@ -707,231 +707,231 @@ msgstr "Build order som denne build er tildelt til"
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551
-#: templates/js/translated/bom.js:730 templates/js/translated/build.js:902
-#: templates/js/translated/build.js:1270 templates/js/translated/build.js:1655
-#: templates/js/translated/build.js:1925 templates/js/translated/company.js:492
+#: templates/js/translated/bom.js:728 templates/js/translated/build.js:903
+#: templates/js/translated/build.js:1271 templates/js/translated/build.js:1666
+#: templates/js/translated/build.js:1978 templates/js/translated/company.js:492
#: templates/js/translated/company.js:749 templates/js/translated/order.js:84
-#: templates/js/translated/order.js:651 templates/js/translated/order.js:1090
-#: templates/js/translated/order.js:1693 templates/js/translated/order.js:2050
-#: templates/js/translated/order.js:2245 templates/js/translated/part.js:1006
-#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1254
-#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1657
-#: templates/js/translated/stock.js:2892 templates/js/translated/stock.js:2991
+#: templates/js/translated/order.js:711 templates/js/translated/order.js:1177
+#: templates/js/translated/order.js:1781 templates/js/translated/order.js:2138
+#: templates/js/translated/order.js:2333 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1088 templates/js/translated/part.js:1255
+#: templates/js/translated/stock.js:518 templates/js/translated/stock.js:683
+#: templates/js/translated/stock.js:890 templates/js/translated/stock.js:1613
+#: templates/js/translated/stock.js:2848 templates/js/translated/stock.js:2947
msgid "Part"
msgstr "Del"
-#: build/models.py:233
+#: build/models.py:235
msgid "Select part to build"
msgstr "Valg del å bygge"
-#: build/models.py:238
+#: build/models.py:240
msgid "Sales Order Reference"
msgstr "Salg order referanse"
-#: build/models.py:242
+#: build/models.py:244
msgid "SalesOrder to which this build is allocated"
msgstr "Salgorder som denne build er tildelt til"
-#: build/models.py:247 templates/js/translated/build.js:1643
-#: templates/js/translated/order.js:1681
+#: build/models.py:249 build/serializers.py:729
+#: templates/js/translated/build.js:1654 templates/js/translated/order.js:1769
msgid "Source Location"
msgstr "Kilde plassering"
-#: build/models.py:251
+#: build/models.py:253
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr "Valg sted for å ta lagervare fra for dette prosjektet (la stå tomt for a ta fra hvilken som helst sted)"
-#: build/models.py:256
+#: build/models.py:258
msgid "Destination Location"
msgstr "Sted for destinasjon"
-#: build/models.py:260
+#: build/models.py:262
msgid "Select location where the completed items will be stored"
msgstr "Velg sted hvor fulførte elementer vil bli lagret"
-#: build/models.py:264
+#: build/models.py:266
msgid "Build Quantity"
msgstr "Prosjekt mengde"
-#: build/models.py:267
+#: build/models.py:269
msgid "Number of stock items to build"
msgstr "Antall lagervare til prosjektet"
-#: build/models.py:271
+#: build/models.py:273
msgid "Completed items"
msgstr "Fullførte elementer"
-#: build/models.py:273
+#: build/models.py:275
msgid "Number of stock items which have been completed"
msgstr "Antall lagervarer som er fullført"
-#: build/models.py:277 part/templates/part/part_base.html:234
+#: build/models.py:279 part/templates/part/part_base.html:234
msgid "Build Status"
msgstr "Byggstatus"
-#: build/models.py:281
+#: build/models.py:283
msgid "Build status code"
msgstr "Byggstatuskode"
-#: build/models.py:285 build/serializers.py:218 order/serializers.py:272
-#: stock/models.py:570 templates/js/translated/order.js:513
+#: build/models.py:287 build/serializers.py:218 order/serializers.py:272
+#: stock/models.py:622 templates/js/translated/order.js:573
msgid "Batch Code"
msgstr "Batch kode"
-#: build/models.py:289 build/serializers.py:219
+#: build/models.py:291 build/serializers.py:219
msgid "Batch code for this build output"
msgstr "Batch kode for denne build output"
-#: build/models.py:292 order/models.py:129 part/models.py:999
-#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1379
+#: build/models.py:294 order/models.py:129 part/models.py:999
+#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1467
msgid "Creation Date"
msgstr "Opprettelsesdato"
-#: build/models.py:296 order/models.py:585
+#: build/models.py:298 order/models.py:585
msgid "Target completion date"
msgstr "Forventet sluttdato"
-#: build/models.py:297
+#: build/models.py:299
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Forventet dato for ferdigstillelse. Build er forvalt etter denne datoen."
-#: build/models.py:300 order/models.py:255
-#: templates/js/translated/build.js:2002
+#: build/models.py:302 order/models.py:255
+#: templates/js/translated/build.js:2055
msgid "Completion Date"
msgstr "Fullført dato"
-#: build/models.py:306
+#: build/models.py:308
msgid "completed by"
msgstr "fullført av"
-#: build/models.py:314 templates/js/translated/build.js:1970
+#: build/models.py:316 templates/js/translated/build.js:2023
msgid "Issued by"
msgstr "Utstedt av"
-#: build/models.py:315
+#: build/models.py:317
msgid "User who issued this build order"
msgstr "Brukeren som utstede denne prosjekt order"
-#: build/models.py:323 build/templates/build/build_base.html:190
+#: build/models.py:325 build/templates/build/build_base.html:190
#: build/templates/build/detail.html:116 order/models.py:143
#: order/templates/order/order_base.html:170
#: order/templates/order/sales_order_base.html:182 part/models.py:1003
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1982 templates/js/translated/order.js:945
+#: templates/js/translated/build.js:2035 templates/js/translated/order.js:1005
msgid "Responsible"
msgstr "Ansvarlig"
-#: build/models.py:324
+#: build/models.py:326
msgid "User responsible for this build order"
msgstr "Bruker ansvarlig for denne prosjekt order"
-#: build/models.py:329 build/templates/build/detail.html:102
+#: build/models.py:331 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:564
+#: part/templates/part/part_base.html:354 stock/models.py:616
#: stock/templates/stock/item_base.html:352
msgid "External Link"
msgstr "Ekstern link"
-#: build/models.py:334 build/serializers.py:381
+#: build/models.py:336 build/serializers.py:381
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
#: order/models.py:147 order/models.py:845 order/models.py:1107
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/models.py:988
-#: part/templates/part/detail.html:146 part/templates/part/part_sidebar.html:57
+#: part/templates/part/detail.html:141 part/templates/part/part_sidebar.html:57
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:137 stock/forms.py:171 stock/models.py:636
-#: stock/models.py:1971 stock/models.py:2077 stock/serializers.py:332
+#: stock/forms.py:137 stock/forms.py:171 stock/models.py:688
+#: stock/models.py:2023 stock/models.py:2129 stock/serializers.py:332
#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:936
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1257
-#: templates/js/translated/order.js:1562 templates/js/translated/order.js:2419
-#: templates/js/translated/stock.js:1344 templates/js/translated/stock.js:1935
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934
+#: templates/js/translated/company.js:845 templates/js/translated/order.js:1344
+#: templates/js/translated/order.js:1650 templates/js/translated/order.js:2507
+#: templates/js/translated/stock.js:1300 templates/js/translated/stock.js:1891
msgid "Notes"
msgstr "Notater"
-#: build/models.py:335
+#: build/models.py:337
msgid "Extra build notes"
msgstr "Ekstra prosjekt notater"
-#: build/models.py:748
+#: build/models.py:750
msgid "No build output specified"
msgstr "Ingen prosjekt utgang"
-#: build/models.py:751
+#: build/models.py:753
msgid "Build output is already completed"
msgstr "Prosjekt utdata er allerede utfylt"
-#: build/models.py:754
+#: build/models.py:756
msgid "Build output does not match Build Order"
msgstr "Prosjekt utdata samsvarer ikke Prosjekt Order"
-#: build/models.py:1060
+#: build/models.py:1162
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "Prosjektvare må spesifisere en prosjekt utdata, siden hovedvaren er markert som sporbar"
-#: build/models.py:1069
+#: build/models.py:1171
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr "Tildelt antall ({q}) kan ikke overstige tilgjengelige lager mengde ({a})"
-#: build/models.py:1079
+#: build/models.py:1181
msgid "Stock item is over-allocated"
msgstr "Lagervare er overtildelt"
-#: build/models.py:1085 order/models.py:1225
+#: build/models.py:1187 order/models.py:1225
msgid "Allocation quantity must be greater than zero"
msgstr "Tildeling antallet må være større enn null"
-#: build/models.py:1091
+#: build/models.py:1193
msgid "Quantity must be 1 for serialized stock"
msgstr "Mengden må væew 1 for serialisert lagervare"
-#: build/models.py:1148
+#: build/models.py:1250
msgid "Selected stock item not found in BOM"
msgstr "Valgt lagevare ikke funnet i BOM"
-#: build/models.py:1217 stock/templates/stock/item_base.html:324
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898
+#: build/models.py:1319 stock/templates/stock/item_base.html:324
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1951
#: templates/navbar.html:35
msgid "Build"
msgstr "Prosjekt"
-#: build/models.py:1218
+#: build/models.py:1320
msgid "Build to allocate parts"
msgstr "Bygge for å tildele deler"
-#: build/models.py:1234 build/serializers.py:576 order/serializers.py:783
+#: build/models.py:1336 build/serializers.py:576 order/serializers.py:783
#: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635
#: stock/serializers.py:753 stock/templates/stock/item_base.html:9
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:346
-#: templates/js/translated/build.js:687 templates/js/translated/build.js:692
-#: templates/js/translated/build.js:1657 templates/js/translated/build.js:2050
-#: templates/js/translated/order.js:85 templates/js/translated/order.js:1694
-#: templates/js/translated/order.js:1949 templates/js/translated/order.js:1954
-#: templates/js/translated/order.js:2057 templates/js/translated/order.js:2147
-#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728
-#: templates/js/translated/stock.js:2753
+#: templates/js/translated/build.js:688 templates/js/translated/build.js:693
+#: templates/js/translated/build.js:1668 templates/js/translated/build.js:2103
+#: templates/js/translated/order.js:85 templates/js/translated/order.js:1782
+#: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:2235
+#: templates/js/translated/stock.js:519 templates/js/translated/stock.js:684
+#: templates/js/translated/stock.js:2709
msgid "Stock Item"
msgstr "Lagervare"
-#: build/models.py:1235
+#: build/models.py:1337
msgid "Source stock item"
msgstr "Kilde lagervare"
-#: build/models.py:1247 build/serializers.py:188
+#: build/models.py:1349 build/serializers.py:188
#: build/templates/build/build_base.html:82
#: build/templates/build/detail.html:35 common/models.py:1317
#: company/forms.py:42 company/templates/company/supplier_part.html:251
#: order/models.py:836 order/models.py:1265 order/serializers.py:903
#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144
-#: part/forms.py:160 part/forms.py:176 part/models.py:2707
-#: part/templates/part/detail.html:1008 part/templates/part/detail.html:1094
+#: part/forms.py:160 part/forms.py:176 part/models.py:2722
+#: part/templates/part/detail.html:994 part/templates/part/detail.html:1080
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_build_order_base.html:114
@@ -943,32 +943,32 @@ msgstr "Kilde lagervare"
#: stock/templates/stock/item_base.html:176
#: stock/templates/stock/item_base.html:241
#: stock/templates/stock/item_base.html:249
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:780
-#: templates/js/translated/build.js:375 templates/js/translated/build.js:523
-#: templates/js/translated/build.js:714 templates/js/translated/build.js:911
-#: templates/js/translated/build.js:921 templates/js/translated/build.js:1297
-#: templates/js/translated/build.js:1658
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778
+#: templates/js/translated/build.js:376 templates/js/translated/build.js:524
+#: templates/js/translated/build.js:715 templates/js/translated/build.js:912
+#: templates/js/translated/build.js:922 templates/js/translated/build.js:1298
+#: templates/js/translated/build.js:1669
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:101 templates/js/translated/order.js:1142
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:1976
-#: templates/js/translated/order.js:2064 templates/js/translated/order.js:2153
-#: templates/js/translated/order.js:2267 templates/js/translated/part.js:906
-#: templates/js/translated/part.js:1884 templates/js/translated/part.js:2007
-#: templates/js/translated/part.js:2085 templates/js/translated/stock.js:391
-#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758
-#: templates/js/translated/stock.js:2802 templates/js/translated/stock.js:2904
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:1229
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:2064
+#: templates/js/translated/order.js:2152 templates/js/translated/order.js:2241
+#: templates/js/translated/order.js:2355 templates/js/translated/part.js:907
+#: templates/js/translated/part.js:1885 templates/js/translated/part.js:2008
+#: templates/js/translated/part.js:2086 templates/js/translated/stock.js:390
+#: templates/js/translated/stock.js:544 templates/js/translated/stock.js:714
+#: templates/js/translated/stock.js:2758 templates/js/translated/stock.js:2860
msgid "Quantity"
msgstr "Antall"
-#: build/models.py:1248
+#: build/models.py:1350
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1256
+#: build/models.py:1358
msgid "Install into"
msgstr "Installerings informasjon"
-#: build/models.py:1257
+#: build/models.py:1359
msgid "Destination stock item"
msgstr "Målets lagervare"
@@ -997,8 +997,8 @@ msgid "Enter quantity for build output"
msgstr "Angi antall for build utgang"
#: build/serializers.py:201 build/serializers.py:596 order/models.py:280
-#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:826
-#: stock/models.py:404 stock/models.py:1180 stock/serializers.py:305
+#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:836
+#: stock/models.py:456 stock/models.py:1232 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr "Mengden må være større enn null"
@@ -1012,8 +1012,8 @@ msgstr ""
#: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907
#: stock/forms.py:78 stock/serializers.py:314
-#: templates/js/translated/order.js:524 templates/js/translated/stock.js:238
-#: templates/js/translated/stock.js:392
+#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237
+#: templates/js/translated/stock.js:391
msgid "Serial Numbers"
msgstr "Serienummer"
@@ -1029,7 +1029,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:275 stock/api.py:549
+#: build/serializers.py:275 stock/api.py:551
msgid "The following serial numbers already exist"
msgstr ""
@@ -1041,13 +1041,13 @@ msgstr ""
#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788
#: stock/serializers.py:1029 stock/templates/stock/item_base.html:292
#: templates/js/translated/barcode.js:384
-#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:699
-#: templates/js/translated/build.js:1309 templates/js/translated/order.js:551
-#: templates/js/translated/order.js:1961 templates/js/translated/order.js:2072
-#: templates/js/translated/order.js:2080 templates/js/translated/order.js:2161
-#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564
-#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936
-#: templates/js/translated/stock.js:1807 templates/js/translated/stock.js:2694
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700
+#: templates/js/translated/build.js:1310 templates/js/translated/order.js:611
+#: templates/js/translated/order.js:2049 templates/js/translated/order.js:2160
+#: templates/js/translated/order.js:2168 templates/js/translated/order.js:2249
+#: templates/js/translated/part.js:179 templates/js/translated/stock.js:520
+#: templates/js/translated/stock.js:685 templates/js/translated/stock.js:892
+#: templates/js/translated/stock.js:1763 templates/js/translated/stock.js:2650
msgid "Location"
msgstr "Beliggenhet"
@@ -1058,10 +1058,10 @@ msgstr ""
#: build/serializers.py:377 build/templates/build/build_base.html:142
#: build/templates/build/detail.html:63 order/models.py:579
#: order/serializers.py:290 stock/templates/stock/item_base.html:182
-#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1954
-#: templates/js/translated/order.js:656 templates/js/translated/order.js:915
-#: templates/js/translated/order.js:1371 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2771 templates/js/translated/stock.js:2920
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2007
+#: templates/js/translated/order.js:716 templates/js/translated/order.js:975
+#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2727 templates/js/translated/stock.js:2876
msgid "Status"
msgstr "Status"
@@ -1073,7 +1073,7 @@ msgstr ""
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:445 templates/js/translated/build.js:150
+#: build/serializers.py:445 templates/js/translated/build.js:151
msgid "Required stock has not been fully allocated"
msgstr "Påkrevd varer er ikke fullt tildelt"
@@ -1085,7 +1085,7 @@ msgstr ""
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:461 templates/js/translated/build.js:154
+#: build/serializers.py:461 templates/js/translated/build.js:155
msgid "Required build quantity has not been completed"
msgstr ""
@@ -1097,8 +1097,8 @@ msgstr ""
msgid "No build outputs have been created for this build order"
msgstr ""
-#: build/serializers.py:501 build/serializers.py:550 part/models.py:2831
-#: part/models.py:2990
+#: build/serializers.py:501 build/serializers.py:550 part/models.py:2846
+#: part/models.py:3005
msgid "BOM Item"
msgstr "BOM varer"
@@ -1135,6 +1135,26 @@ msgstr ""
msgid "Allocation items must be provided"
msgstr ""
+#: build/serializers.py:730
+msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
+msgstr ""
+
+#: build/serializers.py:735
+msgid "Interchangeable Stock"
+msgstr ""
+
+#: build/serializers.py:736
+msgid "Stock items in multiple locations can be used interchangeably"
+msgstr ""
+
+#: build/serializers.py:741
+msgid "Substitute Stock"
+msgstr ""
+
+#: build/serializers.py:742
+msgid "Allow allocation of substitute parts"
+msgstr ""
+
#: build/tasks.py:98
msgid "Stock required for build order"
msgstr ""
@@ -1206,9 +1226,9 @@ msgstr ""
#: order/templates/order/order_base.html:156
#: order/templates/order/sales_order_base.html:163
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1994 templates/js/translated/order.js:932
-#: templates/js/translated/order.js:1204 templates/js/translated/order.js:1387
-#: templates/js/translated/order.js:2330 templates/js/translated/part.js:910
+#: templates/js/translated/build.js:2047 templates/js/translated/order.js:992
+#: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475
+#: templates/js/translated/order.js:2418 templates/js/translated/part.js:911
msgid "Target Date"
msgstr "Måldato"
@@ -1230,7 +1250,7 @@ msgstr ""
#: build/templates/build/build_base.html:163
#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
#: order/templates/order/sales_order_base.html:170
-#: templates/js/translated/build.js:1940
+#: templates/js/translated/build.js:1993
#: templates/js/translated/table_filters.js:365
msgid "Completed"
msgstr "Fullført"
@@ -1242,7 +1262,7 @@ msgstr "Fullført"
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:286
-#: templates/js/translated/order.js:1326 templates/js/translated/stock.js:2436
+#: templates/js/translated/order.js:1414 templates/js/translated/stock.js:2392
msgid "Sales Order"
msgstr "Salgsorder"
@@ -1277,7 +1297,7 @@ msgid "Stock can be taken from any available location."
msgstr "Lagervare kan hentes fra alle tilgengelige steder."
#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133
-#: templates/js/translated/order.js:657 templates/js/translated/order.js:1246
+#: templates/js/translated/order.js:717 templates/js/translated/order.js:1333
msgid "Destination"
msgstr "Destinasjon"
@@ -1285,13 +1305,13 @@ msgstr "Destinasjon"
msgid "Destination location not specified"
msgstr "Målplassering er ikke spesifisert"
-#: build/templates/build/detail.html:74 templates/js/translated/build.js:929
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:930
msgid "Allocated Parts"
msgstr "Tildelte deler"
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:310
-#: templates/js/translated/stock.js:1796 templates/js/translated/stock.js:2927
+#: templates/js/translated/stock.js:1752 templates/js/translated/stock.js:2883
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:238
msgid "Batch"
@@ -1300,7 +1320,7 @@ msgstr ""
#: build/templates/build/detail.html:127
#: order/templates/order/order_base.html:143
#: order/templates/order/sales_order_base.html:157
-#: templates/js/translated/build.js:1962
+#: templates/js/translated/build.js:2015
msgid "Created"
msgstr "Opprettet"
@@ -1320,7 +1340,7 @@ msgstr ""
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:177 templates/js/translated/build.js:1484
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1485
msgid "Unallocate stock"
msgstr "Fjern lager allokering"
@@ -1329,111 +1349,119 @@ msgid "Unallocate Stock"
msgstr "Fjern lager allokering"
#: build/templates/build/detail.html:180
-msgid "Allocate stock to build"
+msgid "Automatically allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
+#: build/templates/build/detail.html:181
+msgid "Auto Allocate"
+msgstr ""
+
+#: build/templates/build/detail.html:183
+msgid "Manually allocate stock to build"
+msgstr ""
+
+#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8
msgid "Allocate Stock"
msgstr "Tildele lager"
-#: build/templates/build/detail.html:184
+#: build/templates/build/detail.html:187
msgid "Order required parts"
msgstr "Bestill nødvendige deler"
-#: build/templates/build/detail.html:185
+#: build/templates/build/detail.html:188
#: company/templates/company/detail.html:38
#: company/templates/company/detail.html:85 order/views.py:463
-#: part/templates/part/category.html:177
+#: part/templates/part/category.html:174
msgid "Order Parts"
msgstr "Bestill deler"
-#: build/templates/build/detail.html:197
+#: build/templates/build/detail.html:200
msgid "Untracked stock has been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:201
+#: build/templates/build/detail.html:204
msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:208
+#: build/templates/build/detail.html:211
msgid "Allocate selected items"
msgstr "Tildel valgte varer"
-#: build/templates/build/detail.html:218
+#: build/templates/build/detail.html:221
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:230
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:231
+#: build/templates/build/detail.html:234
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:232
+#: build/templates/build/detail.html:235
msgid "New Build Output"
msgstr ""
-#: build/templates/build/detail.html:246
+#: build/templates/build/detail.html:249
msgid "Output Actions"
msgstr ""
-#: build/templates/build/detail.html:250
+#: build/templates/build/detail.html:253
msgid "Complete selected build outputs"
msgstr ""
-#: build/templates/build/detail.html:251
+#: build/templates/build/detail.html:254
msgid "Complete outputs"
msgstr ""
-#: build/templates/build/detail.html:253
+#: build/templates/build/detail.html:256
msgid "Delete selected build outputs"
msgstr ""
-#: build/templates/build/detail.html:254
+#: build/templates/build/detail.html:257
msgid "Delete outputs"
msgstr ""
-#: build/templates/build/detail.html:270
+#: build/templates/build/detail.html:273
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19
+#: build/templates/build/detail.html:285 build/templates/build/sidebar.html:19
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:107
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:222
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217
#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:105
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr "Vedlegg"
-#: build/templates/build/detail.html:298
+#: build/templates/build/detail.html:301
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:302 build/templates/build/detail.html:478
-#: company/templates/company/detail.html:188
-#: company/templates/company/detail.html:215
+#: build/templates/build/detail.html:305 build/templates/build/detail.html:481
+#: company/templates/company/detail.html:190
+#: company/templates/company/detail.html:217
#: order/templates/order/purchase_order_detail.html:80
#: order/templates/order/purchase_order_detail.html:108
#: order/templates/order/sales_order_detail.html:127
#: order/templates/order/sales_order_detail.html:186
-#: part/templates/part/detail.html:150 stock/templates/stock/item.html:125
+#: part/templates/part/detail.html:145 stock/templates/stock/item.html:125
#: stock/templates/stock/item.html:223
msgid "Edit Notes"
msgstr "Rediger notater"
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:519
msgid "Allocation Complete"
msgstr "Tildeling fullført"
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:520
msgid "All untracked stock items have been allocated"
msgstr "Alle usporbar lagervarer har tildelt"
-#: build/templates/build/index.html:18 part/templates/part/detail.html:329
+#: build/templates/build/index.html:18 part/templates/part/detail.html:322
msgid "New Build Order"
msgstr ""
@@ -1658,7 +1686,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr "Kopier kategori parametermaler ved oppretting av en del"
-#: common/models.py:732 part/models.py:2527 report/models.py:187
+#: common/models.py:732 part/models.py:2541 report/models.py:187
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:417
msgid "Template"
@@ -1668,7 +1696,7 @@ msgstr "Mal"
msgid "Parts are templates by default"
msgstr "Deler er maler som standard"
-#: common/models.py:739 part/models.py:951 templates/js/translated/bom.js:1300
+#: common/models.py:739 part/models.py:951 templates/js/translated/bom.js:1305
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:429
msgid "Assembly"
@@ -2243,7 +2271,7 @@ msgstr ""
#: common/models.py:1325 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:937 templates/js/translated/part.js:1889
+#: templates/js/translated/part.js:938 templates/js/translated/part.js:1890
msgid "Price"
msgstr ""
@@ -2337,14 +2365,14 @@ msgstr "Var arbeidet med denne meldingen ferdig?"
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
-#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:210
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208
#: templates/patterns/wizard/upload.html:35
msgid "Upload File"
msgstr "Last opp fil"
#: common/views.py:94 order/views.py:244
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:211
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:209
#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr "Sammelign felter"
@@ -2472,7 +2500,7 @@ msgstr "Valuta"
msgid "Default currency used for this company"
msgstr "Standardvaluta brukt for dette firmaet"
-#: company/models.py:320 company/models.py:535 stock/models.py:508
+#: company/models.py:320 company/models.py:535 stock/models.py:560
#: stock/templates/stock/item_base.html:137 templates/js/translated/bom.js:541
msgid "Base Part"
msgstr ""
@@ -2499,8 +2527,8 @@ msgstr ""
#: company/models.py:342 company/templates/company/manufacturer_part.html:96
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1124
-#: templates/js/translated/part.js:245 templates/js/translated/part.js:895
+#: templates/js/translated/company.js:818 templates/js/translated/order.js:1211
+#: templates/js/translated/part.js:245 templates/js/translated/part.js:896
msgid "MPN"
msgstr ""
@@ -2529,8 +2557,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2064 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1331
+#: stock/models.py:2116 templates/js/translated/company.js:647
+#: templates/js/translated/part.js:716 templates/js/translated/stock.js:1287
msgid "Value"
msgstr ""
@@ -2538,10 +2566,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:945 part/models.py:2495
+#: company/models.py:429 part/models.py:945 part/models.py:2509
#: part/templates/part/part_base.html:288
#: templates/InvenTree/settings/settings.html:324
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:721
+#: templates/js/translated/company.js:653 templates/js/translated/part.js:722
msgid "Units"
msgstr ""
@@ -2559,8 +2587,8 @@ msgstr ""
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237
#: part/bom.py:265 stock/templates/stock/item_base.html:376
#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:898
-#: templates/js/translated/part.js:215 templates/js/translated/part.js:863
+#: templates/js/translated/company.js:774 templates/js/translated/order.js:958
+#: templates/js/translated/part.js:215 templates/js/translated/part.js:864
#: templates/js/translated/table_filters.js:388
msgid "Supplier"
msgstr ""
@@ -2570,8 +2598,8 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1111
-#: templates/js/translated/part.js:226 templates/js/translated/part.js:881
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198
+#: templates/js/translated/part.js:226 templates/js/translated/part.js:882
msgid "SKU"
msgstr ""
@@ -2592,7 +2620,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:119
-#: part/models.py:2719 part/templates/part/upload_bom.html:59
+#: part/models.py:2734 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409
msgid "Note"
@@ -2607,8 +2635,8 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:532 stock/templates/stock/item_base.html:317
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1931
+#: stock/models.py:584 stock/templates/stock/item_base.html:317
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1887
msgid "Packaging"
msgstr ""
@@ -2676,11 +2704,11 @@ msgid "Download image from URL"
msgstr "Last ned bilde fra URL"
#: company/templates/company/company_base.html:83 order/models.py:574
-#: order/templates/order/sales_order_base.html:115 stock/models.py:551
-#: stock/models.py:552 stock/serializers.py:683
+#: order/templates/order/sales_order_base.html:115 stock/models.py:603
+#: stock/models.py:604 stock/serializers.py:683
#: stock/templates/stock/item_base.html:269
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1348
-#: templates/js/translated/stock.js:2735
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1436
+#: templates/js/translated/stock.js:2691
#: templates/js/translated/table_filters.js:392
msgid "Customer"
msgstr "Kunde"
@@ -2711,7 +2739,7 @@ msgstr "Oprett ny leverandørdel"
#: company/templates/company/detail.html:20
#: company/templates/company/manufacturer_part.html:118
-#: part/templates/part/detail.html:367
+#: part/templates/part/detail.html:360
msgid "New Supplier Part"
msgstr "Ny leverandørdel"
@@ -2719,14 +2747,14 @@ msgstr "Ny leverandørdel"
#: company/templates/company/detail.html:79
#: company/templates/company/manufacturer_part.html:127
#: company/templates/company/manufacturer_part.html:156
-#: part/templates/part/category.html:171 part/templates/part/detail.html:376
-#: part/templates/part/detail.html:405
+#: part/templates/part/category.html:168 part/templates/part/detail.html:369
+#: part/templates/part/detail.html:398
msgid "Options"
msgstr "Valgmuligheter"
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177
+#: part/templates/part/category.html:174
msgid "Order parts"
msgstr "Bestill deler"
@@ -2748,7 +2776,7 @@ msgstr "Produsentdeler"
msgid "Create new manufacturer part"
msgstr "Opprett ny produsentdeler"
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:395
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:388
msgid "New Manufacturer Part"
msgstr "Ny produsentdel"
@@ -2762,7 +2790,7 @@ msgstr "Leverandør lager"
#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:40
+#: part/templates/part/detail.html:80 part/templates/part/part_sidebar.html:40
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
@@ -2784,7 +2812,7 @@ msgstr "Ny bestillingsorder"
#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:44
+#: part/templates/part/detail.html:103 part/templates/part/part_sidebar.html:44
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
@@ -2802,23 +2830,23 @@ msgid "New Sales Order"
msgstr "Ny salgsorder"
#: company/templates/company/detail.html:168
-#: templates/js/translated/build.js:1281
+#: templates/js/translated/build.js:1282
msgid "Assigned Stock"
msgstr "Tildelt lagervare"
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:186
msgid "Company Notes"
msgstr "Notater til firma"
-#: company/templates/company/detail.html:384
+#: company/templates/company/detail.html:380
#: company/templates/company/manufacturer_part.html:215
-#: part/templates/part/detail.html:449
+#: part/templates/part/detail.html:442
msgid "Delete Supplier Parts?"
msgstr "Slett leverandørdeler?"
-#: company/templates/company/detail.html:385
+#: company/templates/company/detail.html:381
#: company/templates/company/manufacturer_part.html:216
-#: part/templates/part/detail.html:450
+#: part/templates/part/detail.html:443
msgid "All selected supplier parts will be deleted"
msgstr "Alle valgte leverandørdeler vil slettes"
@@ -2835,7 +2863,7 @@ msgstr "Produsenter"
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:34
#: company/templates/company/supplier_part.html:159
-#: part/templates/part/detail.html:88 part/templates/part/part_base.html:76
+#: part/templates/part/detail.html:83 part/templates/part/part_base.html:76
msgid "Order part"
msgstr "Bestill del"
@@ -2862,14 +2890,14 @@ msgid "Suppliers"
msgstr "Leverandører"
#: company/templates/company/manufacturer_part.html:129
-#: part/templates/part/detail.html:378
+#: part/templates/part/detail.html:371
msgid "Delete supplier parts"
msgstr "Slett leverandørdeler"
#: company/templates/company/manufacturer_part.html:129
#: company/templates/company/manufacturer_part.html:158
#: company/templates/company/manufacturer_part.html:254
-#: part/templates/part/detail.html:378 part/templates/part/detail.html:407
+#: part/templates/part/detail.html:371 part/templates/part/detail.html:400
#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31
#: users/models.py:217
msgid "Delete"
@@ -2878,12 +2906,12 @@ msgstr "Slett"
#: company/templates/company/manufacturer_part.html:143
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:17
-#: part/templates/part/detail.html:196 part/templates/part/part_sidebar.html:9
+#: part/templates/part/detail.html:191 part/templates/part/part_sidebar.html:9
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:147
-#: part/templates/part/detail.html:201
+#: part/templates/part/detail.html:196
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:66
msgid "New Parameter"
@@ -2894,7 +2922,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:191
-#: part/templates/part/detail.html:908
+#: part/templates/part/detail.html:894
msgid "Add Parameter"
msgstr ""
@@ -2923,9 +2951,9 @@ msgid "Assigned Stock Items"
msgstr "Tildelt lagervarer"
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:516
+#: company/templates/company/supplier_part.html:24 stock/models.py:568
#: stock/templates/stock/item_base.html:381
-#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1888
+#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1844
msgid "Supplier Part"
msgstr ""
@@ -2951,7 +2979,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:166
-#: templates/js/translated/stock.js:368
+#: templates/js/translated/stock.js:367
msgid "New Stock Item"
msgstr ""
@@ -2961,7 +2989,7 @@ msgid "Supplier Part Orders"
msgstr ""
#: company/templates/company/supplier_part.html:160
-#: part/templates/part/detail.html:89
+#: part/templates/part/detail.html:84
msgid "Order Part"
msgstr ""
@@ -2972,7 +3000,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1319
+#: part/templates/part/prices.html:271 part/views.py:1254
msgid "Add Price Break"
msgstr ""
@@ -2980,11 +3008,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1381
+#: company/templates/company/supplier_part.html:224 part/views.py:1316
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1367
+#: company/templates/company/supplier_part.html:238 part/views.py:1302
msgid "Edit Price Break"
msgstr ""
@@ -3002,10 +3030,10 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:150
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/bom.js:553 templates/js/translated/part.js:495
-#: templates/js/translated/part.js:630 templates/js/translated/part.js:1147
-#: templates/js/translated/part.js:1308 templates/js/translated/stock.js:935
-#: templates/js/translated/stock.js:1711 templates/navbar.html:28
+#: templates/js/translated/bom.js:553 templates/js/translated/part.js:496
+#: templates/js/translated/part.js:631 templates/js/translated/part.js:1148
+#: templates/js/translated/part.js:1309 templates/js/translated/stock.js:891
+#: templates/js/translated/stock.js:1667 templates/navbar.html:28
msgid "Stock"
msgstr ""
@@ -3028,7 +3056,7 @@ msgstr ""
#: stock/templates/stock/location.html:150
#: stock/templates/stock/location.html:162
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2641
+#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2597
#: templates/stats.html:105 templates/stats.html:114 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -3058,20 +3086,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:591
+#: company/views.py:129 part/views.py:589
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:623
+#: company/views.py:158 part/views.py:621
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:630
+#: company/views.py:165 part/views.py:628
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:639
+#: company/views.py:174 part/views.py:637
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3190,7 +3218,7 @@ msgid "Company from which the items are being ordered"
msgstr ""
#: order/models.py:231 order/templates/order/order_base.html:118
-#: templates/js/translated/order.js:907
+#: templates/js/translated/order.js:967
msgid "Supplier Reference"
msgstr ""
@@ -3247,7 +3275,7 @@ msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
#: order/models.py:589 order/models.py:1084
-#: templates/js/translated/order.js:1395 templates/js/translated/order.js:1546
+#: templates/js/translated/order.js:1483 templates/js/translated/order.js:1634
msgid "Shipment Date"
msgstr ""
@@ -3292,7 +3320,7 @@ msgid "Supplier part must match supplier"
msgstr ""
#: order/models.py:891 order/models.py:982 order/models.py:1078
-#: templates/js/translated/order.js:1937 templates/js/translated/stock.js:2403
+#: templates/js/translated/order.js:2025 templates/js/translated/stock.js:2359
msgid "Order"
msgstr ""
@@ -3300,8 +3328,8 @@ msgstr ""
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:331
-#: templates/js/translated/order.js:876 templates/js/translated/part.js:838
-#: templates/js/translated/stock.js:1865 templates/js/translated/stock.js:2716
+#: templates/js/translated/order.js:936 templates/js/translated/part.js:839
+#: templates/js/translated/stock.js:1821 templates/js/translated/stock.js:2672
msgid "Purchase Order"
msgstr ""
@@ -3310,8 +3338,8 @@ msgid "Supplier part"
msgstr ""
#: order/models.py:920 order/templates/order/order_base.html:163
-#: templates/js/translated/order.js:654 templates/js/translated/order.js:1226
-#: templates/js/translated/part.js:932 templates/js/translated/part.js:959
+#: templates/js/translated/order.js:714 templates/js/translated/order.js:1313
+#: templates/js/translated/part.js:933 templates/js/translated/part.js:960
#: templates/js/translated/table_filters.js:312
msgid "Received"
msgstr ""
@@ -3320,9 +3348,9 @@ msgstr ""
msgid "Number of items received"
msgstr ""
-#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:645
+#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:697
#: stock/serializers.py:170 stock/templates/stock/item_base.html:338
-#: templates/js/translated/stock.js:1919
+#: templates/js/translated/stock.js:1875
msgid "Purchase Price"
msgstr ""
@@ -3456,11 +3484,11 @@ msgstr ""
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:273 templates/js/translated/order.js:514
+#: order/serializers.py:273 templates/js/translated/order.js:574
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:281 templates/js/translated/order.js:525
+#: order/serializers.py:281 templates/js/translated/order.js:585
msgid "Enter serial numbers for incoming stock items"
msgstr ""
@@ -3578,7 +3606,7 @@ msgstr ""
#: order/templates/order/order_base.html:94
#: order/templates/order/sales_order_base.html:89
-#: templates/js/translated/stock.js:2459
+#: templates/js/translated/stock.js:2415
msgid "Order Status"
msgstr ""
@@ -3650,10 +3678,10 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/bom.js:76 templates/js/translated/build.js:380
-#: templates/js/translated/build.js:528 templates/js/translated/build.js:1547
-#: templates/js/translated/order.js:602 templates/js/translated/order.js:1605
-#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769
+#: templates/js/translated/bom.js:76 templates/js/translated/build.js:381
+#: templates/js/translated/build.js:529 templates/js/translated/build.js:1558
+#: templates/js/translated/order.js:662 templates/js/translated/order.js:1693
+#: templates/js/translated/stock.js:557 templates/js/translated/stock.js:725
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr ""
@@ -3717,8 +3745,8 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:940 templates/js/translated/order.js:1403
-#: templates/js/translated/order.js:1533
+#: templates/js/translated/order.js:1000 templates/js/translated/order.js:1491
+#: templates/js/translated/order.js:1621
msgid "Items"
msgstr ""
@@ -3752,9 +3780,9 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:27
-#: order/templates/order/purchase_order_detail.html:182
+#: order/templates/order/purchase_order_detail.html:166
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:245
+#: order/templates/order/sales_order_detail.html:233
msgid "Add Line Item"
msgstr ""
@@ -3794,7 +3822,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:122
-#: templates/js/translated/order.js:1361
+#: templates/js/translated/order.js:1449
msgid "Customer Reference"
msgstr ""
@@ -3827,7 +3855,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:48
-#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1465
+#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1466
msgid "Actions"
msgstr ""
@@ -3902,31 +3930,31 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:499
+#: part/api.py:502
msgid "Valid"
msgstr ""
-#: part/api.py:500
+#: part/api.py:503
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:505
+#: part/api.py:508
msgid "This option must be selected"
msgstr ""
-#: part/api.py:847
+#: part/api.py:866
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:851
+#: part/api.py:870
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:866
+#: part/api.py:885
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:897 part/api.py:901 part/api.py:916 part/api.py:920
+#: part/api.py:916 part/api.py:920 part/api.py:935 part/api.py:939
msgid "This field is required"
msgstr ""
@@ -3944,7 +3972,7 @@ msgid "Available Stock"
msgstr ""
#: part/bom.py:128 part/templates/part/part_base.html:203
-#: templates/js/translated/part.js:1323
+#: templates/js/translated/part.js:1324
msgid "On Order"
msgstr ""
@@ -3976,7 +4004,7 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:97 part/models.py:2571 part/templates/part/category.html:15
+#: part/models.py:97 part/models.py:2585 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -3993,7 +4021,7 @@ msgstr ""
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:37
-#: templates/js/translated/part.js:1685 templates/navbar.html:21
+#: templates/js/translated/part.js:1686 templates/navbar.html:21
#: templates/stats.html:92 templates/stats.html:101 users/models.py:41
msgid "Parts"
msgstr ""
@@ -4023,7 +4051,7 @@ msgstr ""
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:803 part/models.py:2624
+#: part/models.py:803 part/models.py:2638
msgid "Part name"
msgstr ""
@@ -4056,11 +4084,11 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:841 part/models.py:2321 part/models.py:2570
+#: part/models.py:841 part/models.py:2335 part/models.py:2584
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:223
-#: templates/js/translated/part.js:1290
+#: templates/js/translated/part.js:1291
msgid "Category"
msgstr ""
@@ -4069,8 +4097,8 @@ msgid "Part category"
msgstr ""
#: part/models.py:847 part/templates/part/part_base.html:274
-#: templates/js/translated/part.js:618 templates/js/translated/part.js:1243
-#: templates/js/translated/stock.js:1683
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:1244
+#: templates/js/translated/stock.js:1639
msgid "IPN"
msgstr ""
@@ -4083,7 +4111,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:855 part/templates/part/part_base.html:281
-#: report/models.py:200 templates/js/translated/part.js:622
+#: report/models.py:200 templates/js/translated/part.js:623
msgid "Revision"
msgstr ""
@@ -4175,301 +4203,309 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2371
+#: part/models.py:2385
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2388
+#: part/models.py:2402
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2408 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:1311
+#: part/models.py:2422 templates/js/translated/part.js:1737
+#: templates/js/translated/stock.js:1267
msgid "Test Name"
msgstr ""
-#: part/models.py:2409
+#: part/models.py:2423
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2414
+#: part/models.py:2428
msgid "Test Description"
msgstr ""
-#: part/models.py:2415
+#: part/models.py:2429
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2420 templates/js/translated/part.js:1745
+#: part/models.py:2434 templates/js/translated/part.js:1746
#: templates/js/translated/table_filters.js:276
msgid "Required"
msgstr ""
-#: part/models.py:2421
+#: part/models.py:2435
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2426 templates/js/translated/part.js:1753
+#: part/models.py:2440 templates/js/translated/part.js:1754
msgid "Requires Value"
msgstr ""
-#: part/models.py:2427
+#: part/models.py:2441
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2432 templates/js/translated/part.js:1760
+#: part/models.py:2446 templates/js/translated/part.js:1761
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2433
+#: part/models.py:2447
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2444
+#: part/models.py:2458
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2480
+#: part/models.py:2494
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2488
+#: part/models.py:2502
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2495
+#: part/models.py:2509
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2525
+#: part/models.py:2539
msgid "Parent Part"
msgstr ""
-#: part/models.py:2527 part/models.py:2576 part/models.py:2577
+#: part/models.py:2541 part/models.py:2590 part/models.py:2591
#: templates/InvenTree/settings/settings.html:218
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2529
+#: part/models.py:2543
msgid "Data"
msgstr ""
-#: part/models.py:2529
+#: part/models.py:2543
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2581 templates/InvenTree/settings/settings.html:227
+#: part/models.py:2595 templates/InvenTree/settings/settings.html:227
msgid "Default Value"
msgstr ""
-#: part/models.py:2582
+#: part/models.py:2596
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2616
+#: part/models.py:2630
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2619 templates/js/translated/model_renderers.js:182
+#: part/models.py:2633 templates/js/translated/model_renderers.js:182
msgid "Part ID"
msgstr ""
-#: part/models.py:2620
+#: part/models.py:2634
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2623
+#: part/models.py:2637
msgid "Part Name"
msgstr ""
-#: part/models.py:2627
+#: part/models.py:2641
msgid "Part IPN"
msgstr ""
-#: part/models.py:2628
+#: part/models.py:2642
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2645
msgid "Level"
msgstr ""
-#: part/models.py:2632
+#: part/models.py:2646
msgid "BOM level"
msgstr ""
-#: part/models.py:2692
+#: part/models.py:2707
msgid "Select parent part"
msgstr ""
-#: part/models.py:2700
+#: part/models.py:2715
msgid "Sub part"
msgstr ""
-#: part/models.py:2701
+#: part/models.py:2716
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2707
+#: part/models.py:2722
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2709 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:791 templates/js/translated/bom.js:865
+#: part/models.py:2724 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2709
+#: part/models.py:2724
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2712 part/templates/part/upload_bom.html:55
+#: part/models.py:2727 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2713
+#: part/models.py:2728
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2716
+#: part/models.py:2731
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2719
+#: part/models.py:2734
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2721
+#: part/models.py:2736
msgid "Checksum"
msgstr ""
-#: part/models.py:2721
+#: part/models.py:2736
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2725 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:882
+#: part/models.py:2740 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:880
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2726
+#: part/models.py:2741
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2731 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:874
+#: part/models.py:2746 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:872
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2732
+#: part/models.py:2747
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2817 stock/models.py:394
+#: part/models.py:2832 stock/models.py:446
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2826 part/models.py:2828
+#: part/models.py:2841 part/models.py:2843
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2957
+#: part/models.py:2972
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2979
+#: part/models.py:2994
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2991
+#: part/models.py:3006
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2999
+#: part/models.py:3014
msgid "Substitute part"
msgstr ""
-#: part/models.py:3010
+#: part/models.py:3025
msgid "Part 1"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3029
msgid "Part 2"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3029
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3046
+#: part/models.py:3061
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
-#: part/serializers.py:667
+#: part/serializers.py:670
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:678
+#: part/serializers.py:681
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:679
+#: part/serializers.py:682
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:684
+#: part/serializers.py:687
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:685
+#: part/serializers.py:688
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:690
+#: part/serializers.py:693
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:691
+#: part/serializers.py:694
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:699
+msgid "Copy Substitute Parts"
+msgstr ""
+
+#: part/serializers.py:700
+msgid "Copy substitute parts when duplicate BOM items"
+msgstr ""
+
+#: part/serializers.py:744
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:735
+#: part/serializers.py:745
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:762
+#: part/serializers.py:772
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:805
+#: part/serializers.py:815
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:808
+#: part/serializers.py:818
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:811
+#: part/serializers.py:821
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:820
+#: part/serializers.py:830
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:828
+#: part/serializers.py:838
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:847
+#: part/serializers.py:857
msgid "At least one BOM item is required"
msgstr ""
@@ -4496,7 +4532,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:279
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:274
msgid "BOM actions"
msgstr ""
@@ -4548,7 +4584,7 @@ msgstr ""
msgid "Top level part category"
msgstr ""
-#: part/templates/part/category.html:114 part/templates/part/category.html:205
+#: part/templates/part/category.html:114 part/templates/part/category.html:202
#: part/templates/part/category_sidebar.html:7
msgid "Subcategories"
msgstr ""
@@ -4557,55 +4593,51 @@ msgstr ""
msgid "Parts (Including subcategories)"
msgstr ""
-#: part/templates/part/category.html:156
-msgid "Export Part Data"
-msgstr ""
-
-#: part/templates/part/category.html:157 part/templates/part/category.html:181
-msgid "Export"
-msgstr ""
-
-#: part/templates/part/category.html:160
+#: part/templates/part/category.html:157
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:161 templates/js/translated/bom.js:365
+#: part/templates/part/category.html:158 templates/js/translated/bom.js:365
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:175
+#: part/templates/part/category.html:172
msgid "Set category"
msgstr ""
-#: part/templates/part/category.html:175
+#: part/templates/part/category.html:172
msgid "Set Category"
msgstr ""
-#: part/templates/part/category.html:179
+#: part/templates/part/category.html:176
msgid "Print Labels"
msgstr ""
-#: part/templates/part/category.html:181
+#: part/templates/part/category.html:178
+msgid "Export"
+msgstr ""
+
+#: part/templates/part/category.html:178
msgid "Export Data"
msgstr ""
-#: part/templates/part/category.html:195
+#: part/templates/part/category.html:192
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:288
+#: part/templates/part/category.html:285
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:315
+#: part/templates/part/category.html:305
msgid "Create Part"
msgstr ""
-#: part/templates/part/category.html:318
+#: part/templates/part/category.html:308
msgid "Create another part after this one"
msgstr ""
-#: part/templates/part/category.html:319
+#: part/templates/part/category.html:309
msgid "Part created successfully"
msgstr ""
@@ -4676,155 +4708,150 @@ msgstr ""
msgid "Part Stock"
msgstr ""
-#: part/templates/part/detail.html:33
-#, python-format
-msgid "Showing stock for all variants of %(full_name)s"
-msgstr ""
-
-#: part/templates/part/detail.html:43
+#: part/templates/part/detail.html:38
msgid "Part Stock Allocations"
msgstr ""
-#: part/templates/part/detail.html:60
+#: part/templates/part/detail.html:55
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:65
+#: part/templates/part/detail.html:60
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:122
+#: part/templates/part/detail.html:117
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:168
+#: part/templates/part/detail.html:163
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:172
+#: part/templates/part/detail.html:167
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:173
+#: part/templates/part/detail.html:168
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:200
+#: part/templates/part/detail.html:195
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:237 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:52
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:241 part/templates/part/detail.html:242
+#: part/templates/part/detail.html:236 part/templates/part/detail.html:237
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:262 part/templates/part/part_sidebar.html:18
+#: part/templates/part/detail.html:257 part/templates/part/part_sidebar.html:18
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:267
+#: part/templates/part/detail.html:262
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:271 templates/js/translated/bom.js:283
+#: part/templates/part/detail.html:266 templates/js/translated/bom.js:283
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:268
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:283
+#: part/templates/part/detail.html:278
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:285 templates/js/translated/part.js:272
+#: part/templates/part/detail.html:279 templates/js/translated/part.js:272
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:287
+#: part/templates/part/detail.html:280
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:285
msgid "New BOM Item"
msgstr ""
-#: part/templates/part/detail.html:293
+#: part/templates/part/detail.html:286
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:306
+#: part/templates/part/detail.html:299
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:323
+#: part/templates/part/detail.html:316
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:348
+#: part/templates/part/detail.html:341
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:363
+#: part/templates/part/detail.html:356
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:391
+#: part/templates/part/detail.html:384
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:407
+#: part/templates/part/detail.html:400
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:589
+#: part/templates/part/detail.html:582
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:590
+#: part/templates/part/detail.html:583
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:639
+#: part/templates/part/detail.html:632
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:696
+#: part/templates/part/detail.html:689
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:704
+#: part/templates/part/detail.html:697
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:801
+#: part/templates/part/detail.html:794
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:858
+#: part/templates/part/detail.html:844
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:971
+#: part/templates/part/detail.html:957
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:983
+#: part/templates/part/detail.html:969
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:995
+#: part/templates/part/detail.html:981
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1084
+#: part/templates/part/detail.html:1070
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4969,7 +4996,7 @@ msgstr ""
#: templates/js/translated/company.js:508
#: templates/js/translated/company.js:765
#: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:533 templates/js/translated/part.js:610
+#: templates/js/translated/part.js:534 templates/js/translated/part.js:611
msgid "Inactive"
msgstr ""
@@ -4983,7 +5010,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2356
+#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2444
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5000,12 +5027,12 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:903
+#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:901
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1154
-#: templates/js/translated/part.js:1327
+#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1155
+#: templates/js/translated/part.js:1328
msgid "Building"
msgstr ""
@@ -5057,7 +5084,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:857
+#: templates/js/translated/bom.js:855
msgid "No supplier pricing available"
msgstr ""
@@ -5177,7 +5204,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:851
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849
msgid "Supplier Cost"
msgstr ""
@@ -5199,7 +5226,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1390
+#: part/templates/part/prices.html:215 part/views.py:1325
msgid "Add Internal Price Break"
msgstr ""
@@ -5219,9 +5246,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813
-#: templates/js/translated/part.js:497 templates/js/translated/part.js:1144
-#: templates/js/translated/part.js:1331
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811
+#: templates/js/translated/part.js:498 templates/js/translated/part.js:1145
+#: templates/js/translated/part.js:1332
msgid "No Stock"
msgstr ""
@@ -5275,100 +5302,100 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:172
+#: part/templatetags/inventree_extras.py:174
msgid "Unknown database"
msgstr ""
-#: part/views.py:90
+#: part/views.py:88
msgid "Set Part Category"
msgstr ""
-#: part/views.py:140
+#: part/views.py:138
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:212
+#: part/views.py:210
msgid "Match References"
msgstr ""
-#: part/views.py:509
+#: part/views.py:507
msgid "None"
msgstr ""
-#: part/views.py:568
+#: part/views.py:566
msgid "Part QR Code"
msgstr ""
-#: part/views.py:670
+#: part/views.py:668
msgid "Select Part Image"
msgstr ""
-#: part/views.py:696
+#: part/views.py:694
msgid "Updated part image"
msgstr ""
-#: part/views.py:699
+#: part/views.py:697
msgid "Part image not found"
msgstr ""
-#: part/views.py:850
+#: part/views.py:785
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:857
+#: part/views.py:792
msgid "Part was deleted"
msgstr ""
-#: part/views.py:866
+#: part/views.py:801
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1015
+#: part/views.py:950
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1025
+#: part/views.py:960
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1032
+#: part/views.py:967
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1091 templates/js/translated/part.js:315
+#: part/views.py:1026 templates/js/translated/part.js:315
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1129
+#: part/views.py:1064
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1135
+#: part/views.py:1070
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1144
+#: part/views.py:1079
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1245
+#: part/views.py:1180
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1301
+#: part/views.py:1236
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1323
+#: part/views.py:1258
msgid "Added new price break"
msgstr ""
-#: part/views.py:1399
+#: part/views.py:1334
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1407
+#: part/views.py:1342
msgid "Delete Internal Price Break"
msgstr ""
@@ -5574,12 +5601,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:556 stock/templates/stock/item_base.html:151
-#: templates/js/translated/build.js:373 templates/js/translated/build.js:521
-#: templates/js/translated/build.js:919 templates/js/translated/build.js:1295
+#: stock/models.py:608 stock/templates/stock/item_base.html:151
+#: templates/js/translated/build.js:374 templates/js/translated/build.js:522
+#: templates/js/translated/build.js:920 templates/js/translated/build.js:1296
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:99 templates/js/translated/order.js:2062
-#: templates/js/translated/order.js:2151 templates/js/translated/stock.js:423
+#: templates/js/translated/order.js:99 templates/js/translated/order.js:2150
+#: templates/js/translated/order.js:2239 templates/js/translated/stock.js:422
msgid "Serial Number"
msgstr ""
@@ -5588,19 +5615,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:2052
+#: stock/models.py:2104
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:2058
+#: stock/models.py:2110
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:50
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:924 templates/js/translated/stock.js:2657
+#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2613
msgid "Date"
msgstr ""
@@ -5618,26 +5645,26 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756
-#: templates/js/translated/stock.js:2910
+#: templates/js/translated/stock.js:542 templates/js/translated/stock.js:712
+#: templates/js/translated/stock.js:2866
msgid "Serial"
msgstr ""
-#: stock/api.py:501
+#: stock/api.py:503
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:508
+#: stock/api.py:510
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:533
+#: stock/api.py:535
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/forms.py:74 stock/forms.py:198 stock/models.py:613
+#: stock/forms.py:74 stock/forms.py:198 stock/models.py:665
#: stock/templates/stock/item_base.html:188
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1791
msgid "Expiry Date"
msgstr ""
@@ -5677,228 +5704,228 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:62 stock/models.py:650
+#: stock/models.py:62 stock/models.py:702
#: stock/templates/stock/item_base.html:402
msgid "Owner"
msgstr ""
-#: stock/models.py:63 stock/models.py:651
+#: stock/models.py:63 stock/models.py:703
msgid "Select Owner"
msgstr ""
-#: stock/models.py:375
+#: stock/models.py:427
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:463
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:421 stock/models.py:430
+#: stock/models.py:473 stock/models.py:482
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:422
+#: stock/models.py:474
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:444
+#: stock/models.py:496
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:450
+#: stock/models.py:502
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:457
+#: stock/models.py:509
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:500
+#: stock/models.py:552
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:509
+#: stock/models.py:561
msgid "Base part"
msgstr ""
-#: stock/models.py:517
+#: stock/models.py:569
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:523 stock/templates/stock/location.html:16
+#: stock/models.py:575 stock/templates/stock/location.html:16
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:526
+#: stock/models.py:578
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:585
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:539 stock/templates/stock/item_base.html:277
+#: stock/models.py:591 stock/templates/stock/item_base.html:277
msgid "Installed In"
msgstr ""
-#: stock/models.py:542
+#: stock/models.py:594
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:558
+#: stock/models.py:610
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:572
+#: stock/models.py:624
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:576
+#: stock/models.py:628
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:585
+#: stock/models.py:637
msgid "Source Build"
msgstr ""
-#: stock/models.py:587
+#: stock/models.py:639
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:598
+#: stock/models.py:650
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:601
+#: stock/models.py:653
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:607
+#: stock/models.py:659
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:614
+#: stock/models.py:666
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:627
+#: stock/models.py:679
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:627
+#: stock/models.py:679
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:637 stock/templates/stock/item.html:121
+#: stock/models.py:689 stock/templates/stock/item.html:121
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:646
+#: stock/models.py:698
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1171
+#: stock/models.py:1223
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1177
+#: stock/models.py:1229
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1183
+#: stock/models.py:1235
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1186
+#: stock/models.py:1238
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1189
+#: stock/models.py:1241
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1196
+#: stock/models.py:1248
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1267
+#: stock/models.py:1319
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1270
+#: stock/models.py:1322
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1273
+#: stock/models.py:1325
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1276
+#: stock/models.py:1328
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1279
+#: stock/models.py:1331
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1282
+#: stock/models.py:1334
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1289 stock/serializers.py:832
+#: stock/models.py:1341 stock/serializers.py:832
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1293
+#: stock/models.py:1345
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1297
+#: stock/models.py:1349
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1301
+#: stock/models.py:1353
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1473
+#: stock/models.py:1525
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1972
+#: stock/models.py:2024
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2029
+#: stock/models.py:2081
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2035
+#: stock/models.py:2087
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2053
+#: stock/models.py:2105
msgid "Test name"
msgstr ""
-#: stock/models.py:2059
+#: stock/models.py:2111
msgid "Test result"
msgstr ""
-#: stock/models.py:2065
+#: stock/models.py:2117
msgid "Test output value"
msgstr ""
-#: stock/models.py:2072
+#: stock/models.py:2124
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2078
+#: stock/models.py:2130
msgid "Test notes"
msgstr ""
@@ -5935,7 +5962,7 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:363 stock/views.py:1127
+#: stock/serializers.py:363 stock/views.py:1009
msgid "Serial numbers already exist"
msgstr "Seriernummer eksisterer allerede"
@@ -6052,11 +6079,11 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:147 templates/js/translated/stock.js:3019
+#: stock/templates/stock/item.html:147 templates/js/translated/stock.js:2975
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1479
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1435
msgid "Add Test Result"
msgstr ""
@@ -6070,7 +6097,7 @@ msgstr ""
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:46 templates/stock_table.html:24
+#: stock/templates/stock/item_base.html:46 templates/stock_table.html:21
msgid "Scan to Location"
msgstr ""
@@ -6083,15 +6110,15 @@ msgid "Stock adjustment actions"
msgstr ""
#: stock/templates/stock/item_base.html:69
-#: stock/templates/stock/location.html:52 templates/stock_table.html:50
+#: stock/templates/stock/location.html:52 templates/stock_table.html:47
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48
+#: stock/templates/stock/item_base.html:72 templates/stock_table.html:45
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49
+#: stock/templates/stock/item_base.html:75 templates/stock_table.html:46
msgid "Remove stock"
msgstr ""
@@ -6100,11 +6127,11 @@ msgid "Serialize stock"
msgstr ""
#: stock/templates/stock/item_base.html:82
-#: stock/templates/stock/location.html:58 templates/stock_table.html:51
+#: stock/templates/stock/location.html:58 templates/stock_table.html:48
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85 templates/stock_table.html:54
+#: stock/templates/stock/item_base.html:85 templates/stock_table.html:51
msgid "Assign to customer"
msgstr ""
@@ -6181,7 +6208,7 @@ msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:201
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1807
msgid "Last Updated"
msgstr ""
@@ -6218,7 +6245,7 @@ msgid "This stock item is serialized - it has a unique serial number and the qua
msgstr ""
#: stock/templates/stock/item_base.html:296
-#: templates/js/translated/build.js:1317
+#: templates/js/translated/build.js:1318
msgid "No location set"
msgstr ""
@@ -6320,11 +6347,11 @@ msgstr ""
msgid "Stock Locations"
msgstr ""
-#: stock/templates/stock/location.html:185 templates/stock_table.html:30
+#: stock/templates/stock/location.html:185 templates/stock_table.html:27
msgid "Printing Actions"
msgstr ""
-#: stock/templates/stock/location.html:189 templates/stock_table.html:34
+#: stock/templates/stock/location.html:189 templates/stock_table.html:31
msgid "Print labels"
msgstr ""
@@ -6348,7 +6375,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:749
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:631
msgid "Convert Stock Item"
msgstr ""
@@ -6369,95 +6396,95 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181 templates/js/translated/stock.js:139
+#: stock/views.py:152 templates/js/translated/stock.js:138
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:728 stock/views.py:854 stock/views.py:1136
+#: stock/views.py:259 stock/views.py:610 stock/views.py:736 stock/views.py:1018
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:274
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:293
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:302
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:342
+#: stock/views.py:313
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:353
+#: stock/views.py:324
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:370
+#: stock/views.py:341
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:371
+#: stock/views.py:342
msgid "Check the confirmation box"
msgstr "Sjekk bekreftelsesboksen"
-#: stock/views.py:475
+#: stock/views.py:357
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:500
+#: stock/views.py:382
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:597 templates/js/translated/stock.js:1074
+#: stock/views.py:479 templates/js/translated/stock.js:1030
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:608
+#: stock/views.py:490
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:630 templates/js/translated/stock.js:332
+#: stock/views.py:512 templates/js/translated/stock.js:331
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:780
+#: stock/views.py:662
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:881
+#: stock/views.py:763
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1023 templates/js/translated/stock.js:312
+#: stock/views.py:905 templates/js/translated/stock.js:311
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1105
+#: stock/views.py:987
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1205
+#: stock/views.py:1087
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1218
+#: stock/views.py:1100
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1229
+#: stock/views.py:1111
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1236
+#: stock/views.py:1118
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1245
+#: stock/views.py:1127
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -7381,14 +7408,14 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1335
+#: templates/js/translated/bom.js:1340
msgid "Required Quantity"
msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:804 templates/js/translated/build.js:1411
-#: templates/js/translated/build.js:2057
+#: templates/js/translated/bom.js:802 templates/js/translated/build.js:1412
+#: templates/js/translated/build.js:2110
#: templates/js/translated/table_filters.js:178
msgid "Available"
msgstr ""
@@ -7580,7 +7607,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:982
msgid "Remove stock item"
msgstr ""
@@ -7635,12 +7662,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286
-#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518
+#: templates/js/translated/order.js:429 templates/js/translated/tables.js:53
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519
+#: templates/js/translated/order.js:430
msgid "Select file format"
msgstr ""
@@ -7716,275 +7743,307 @@ msgstr ""
msgid "Edit BOM Item Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:741
+#: templates/js/translated/bom.js:739
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:745 templates/js/translated/build.js:1393
+#: templates/js/translated/bom.js:743 templates/js/translated/build.js:1394
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:750
+#: templates/js/translated/bom.js:748
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:822
+#: templates/js/translated/bom.js:820
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:837
+#: templates/js/translated/bom.js:835
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:844
+#: templates/js/translated/bom.js:842
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:893 templates/js/translated/bom.js:982
+#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:953
+#: templates/js/translated/bom.js:951
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:955
+#: templates/js/translated/bom.js:953
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:957
+#: templates/js/translated/bom.js:955
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138
+#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:961 templates/js/translated/bom.js:1121
+#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1060 templates/js/translated/build.js:1137
+#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1138
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1116
+#: templates/js/translated/bom.js:1121
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:1318 templates/js/translated/build.js:1377
+#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1378
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1340
+#: templates/js/translated/bom.js:1345
msgid "Inherited from parent BOM"
msgstr ""
-#: templates/js/translated/build.js:85
+#: templates/js/translated/build.js:86
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:119
+#: templates/js/translated/build.js:120
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:140
+#: templates/js/translated/build.js:141
msgid "Build order is ready to be completed"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:146
msgid "Build Order is incomplete"
msgstr ""
-#: templates/js/translated/build.js:173
+#: templates/js/translated/build.js:174
msgid "Complete Build Order"
msgstr ""
-#: templates/js/translated/build.js:214 templates/js/translated/stock.js:92
-#: templates/js/translated/stock.js:181
+#: templates/js/translated/build.js:215 templates/js/translated/stock.js:91
+#: templates/js/translated/stock.js:180
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:216 templates/js/translated/stock.js:94
-#: templates/js/translated/stock.js:183
+#: templates/js/translated/build.js:217 templates/js/translated/stock.js:93
+#: templates/js/translated/stock.js:182
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/build.js:225
+#: templates/js/translated/build.js:226
msgid "The Bill of Materials contains trackable parts"
msgstr ""
-#: templates/js/translated/build.js:226
+#: templates/js/translated/build.js:227
msgid "Build outputs must be generated individually"
msgstr ""
-#: templates/js/translated/build.js:234
+#: templates/js/translated/build.js:235
msgid "Trackable parts can have serial numbers specified"
msgstr "Sporbare varer kan ha angitte serienummer"
-#: templates/js/translated/build.js:235
+#: templates/js/translated/build.js:236
msgid "Enter serial numbers to generate multiple single build outputs"
msgstr ""
-#: templates/js/translated/build.js:242
+#: templates/js/translated/build.js:243
msgid "Create Build Output"
msgstr ""
-#: templates/js/translated/build.js:273
+#: templates/js/translated/build.js:274
msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:284
+#: templates/js/translated/build.js:285
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:293
+#: templates/js/translated/build.js:294
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:301
+#: templates/js/translated/build.js:302
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:324
+#: templates/js/translated/build.js:325
msgid "Are you sure you wish to unallocate stock items from this build?"
msgstr ""
-#: templates/js/translated/build.js:342
+#: templates/js/translated/build.js:343
msgid "Unallocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:360 templates/js/translated/build.js:508
+#: templates/js/translated/build.js:361 templates/js/translated/build.js:509
msgid "Select Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:361 templates/js/translated/build.js:509
+#: templates/js/translated/build.js:362 templates/js/translated/build.js:510
msgid "At least one build output must be selected"
msgstr ""
-#: templates/js/translated/build.js:415 templates/js/translated/build.js:563
+#: templates/js/translated/build.js:416 templates/js/translated/build.js:564
msgid "Output"
msgstr ""
-#: templates/js/translated/build.js:431
+#: templates/js/translated/build.js:432
msgid "Complete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:576
+#: templates/js/translated/build.js:577
msgid "Delete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:665
+#: templates/js/translated/build.js:666
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:703 templates/js/translated/order.js:1965
+#: templates/js/translated/build.js:704 templates/js/translated/order.js:2053
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:885
+#: templates/js/translated/build.js:886
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1334 templates/js/translated/build.js:2068
-#: templates/js/translated/order.js:2099
+#: templates/js/translated/build.js:1335 templates/js/translated/build.js:2121
+#: templates/js/translated/order.js:2187
msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1336 templates/js/translated/build.js:2069
-#: templates/js/translated/order.js:2100
+#: templates/js/translated/build.js:1337 templates/js/translated/build.js:2122
+#: templates/js/translated/order.js:2188
msgid "Delete stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1354
+#: templates/js/translated/build.js:1355
msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:1364
+#: templates/js/translated/build.js:1365
msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:1389
+#: templates/js/translated/build.js:1390
msgid "Substitute parts available"
msgstr ""
-#: templates/js/translated/build.js:1406
+#: templates/js/translated/build.js:1407
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1416 templates/js/translated/build.js:1656
-#: templates/js/translated/build.js:2064 templates/js/translated/order.js:2366
+#: templates/js/translated/build.js:1417 templates/js/translated/build.js:1667
+#: templates/js/translated/build.js:2117 templates/js/translated/order.js:2454
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1472 templates/js/translated/order.js:2446
+#: templates/js/translated/build.js:1473 templates/js/translated/order.js:2534
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:1476 templates/stock_table.html:53
+#: templates/js/translated/build.js:1477 templates/stock_table.html:50
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1479 templates/js/translated/order.js:2439
+#: templates/js/translated/build.js:1480 templates/js/translated/order.js:2527
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:1558 templates/js/translated/order.js:1616
-msgid "Specify stock allocation quantity"
-msgstr ""
-
-#: templates/js/translated/build.js:1629 templates/js/translated/label.js:134
-#: templates/js/translated/order.js:1667 templates/js/translated/report.js:225
+#: templates/js/translated/build.js:1519 templates/js/translated/label.js:134
+#: templates/js/translated/order.js:1755 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1630 templates/js/translated/order.js:1668
+#: templates/js/translated/build.js:1520 templates/js/translated/order.js:1756
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:1644 templates/js/translated/order.js:1682
+#: templates/js/translated/build.js:1569 templates/js/translated/order.js:1704
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:1640
+msgid "All Parts Allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:1641
+msgid "All selected parts have been fully allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:1655 templates/js/translated/order.js:1770
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1717
+#: templates/js/translated/build.js:1684 templates/js/translated/order.js:1805
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1674
+#: templates/js/translated/build.js:1685
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1730
+#: templates/js/translated/build.js:1696 templates/js/translated/order.js:1818
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1757 templates/js/translated/order.js:1807
+#: templates/js/translated/build.js:1768 templates/js/translated/order.js:1895
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1875
+#: templates/js/translated/build.js:1865
+msgid "Automatic Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1866
+msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
+msgstr ""
+
+#: templates/js/translated/build.js:1868
+msgid "If a location is specifed, stock will only be allocated from that location"
+msgstr ""
+
+#: templates/js/translated/build.js:1869
+msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
+msgstr ""
+
+#: templates/js/translated/build.js:1870
+msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
+msgstr ""
+
+#: templates/js/translated/build.js:1890
+msgid "Allocate Stock Items"
+msgstr ""
+
+#: templates/js/translated/build.js:1928
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1892 templates/js/translated/part.js:1235
-#: templates/js/translated/part.js:1646 templates/js/translated/stock.js:1643
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/build.js:1945 templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1647 templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:2567
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1912
+#: templates/js/translated/build.js:1965
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1976 templates/js/translated/stock.js:2823
+#: templates/js/translated/build.js:2029 templates/js/translated/stock.js:2779
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1988
+#: templates/js/translated/build.js:2041
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:2045
+#: templates/js/translated/build.js:2098
msgid "No parts allocated for"
msgstr ""
@@ -8049,34 +8108,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:517
-#: templates/js/translated/part.js:602
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:518
+#: templates/js/translated/part.js:603
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:521
-#: templates/js/translated/part.js:606
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:522
+#: templates/js/translated/part.js:607
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:696
+#: templates/js/translated/company.js:631 templates/js/translated/part.js:697
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:738
+#: templates/js/translated/company.js:668 templates/js/translated/part.js:739
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:739
+#: templates/js/translated/company.js:669 templates/js/translated/part.js:740
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:756
+#: templates/js/translated/company.js:688 templates/js/translated/part.js:757
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:768
+#: templates/js/translated/company.js:699 templates/js/translated/part.js:769
msgid "Delete Parameter"
msgstr ""
@@ -8085,12 +8144,12 @@ msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:429
+#: templates/js/translated/filters.js:441
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:430
+#: templates/js/translated/filters.js:442
msgid "false"
msgstr ""
@@ -8098,19 +8157,23 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:286
+#: templates/js/translated/filters.js:288
+msgid "Download data"
+msgstr ""
+
+#: templates/js/translated/filters.js:291
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:290
+#: templates/js/translated/filters.js:295
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:293
+#: templates/js/translated/filters.js:298
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:338
+#: templates/js/translated/filters.js:350
msgid "Create filter"
msgstr ""
@@ -8181,7 +8244,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1050
+#: templates/js/translated/stock.js:1006
msgid "Select Stock Items"
msgstr ""
@@ -8354,206 +8417,214 @@ msgstr ""
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:366
+#: templates/js/translated/order.js:426
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:460
+#: templates/js/translated/order.js:520
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:461
+#: templates/js/translated/order.js:521
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:481 templates/js/translated/order.js:580
+#: templates/js/translated/order.js:541 templates/js/translated/order.js:640
msgid "Add batch code"
msgstr ""
-#: templates/js/translated/order.js:487 templates/js/translated/order.js:591
+#: templates/js/translated/order.js:547 templates/js/translated/order.js:651
msgid "Add serial numbers"
msgstr ""
-#: templates/js/translated/order.js:499
+#: templates/js/translated/order.js:559
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:563 templates/js/translated/stock.js:2263
+#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2219
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:652
+#: templates/js/translated/order.js:712
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:653
+#: templates/js/translated/order.js:713
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:655
+#: templates/js/translated/order.js:715
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/order.js:674
+#: templates/js/translated/order.js:734
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:675
+#: templates/js/translated/order.js:735
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:865 templates/js/translated/part.js:809
+#: templates/js/translated/order.js:925 templates/js/translated/part.js:810
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:890 templates/js/translated/order.js:1338
+#: templates/js/translated/order.js:950 templates/js/translated/order.js:1426
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:1018 templates/js/translated/order.js:2496
+#: templates/js/translated/order.js:1074 templates/js/translated/order.js:2585
+msgid "Duplicate Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:1104 templates/js/translated/order.js:2607
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1030 templates/js/translated/order.js:2507
+#: templates/js/translated/order.js:1117 templates/js/translated/order.js:2618
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:1073
+#: templates/js/translated/order.js:1160
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:1100 templates/js/translated/order.js:2255
+#: templates/js/translated/order.js:1187 templates/js/translated/order.js:2343
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:1154 templates/js/translated/order.js:2280
-#: templates/js/translated/part.js:1863 templates/js/translated/part.js:2074
+#: templates/js/translated/order.js:1241 templates/js/translated/order.js:2368
+#: templates/js/translated/part.js:1864 templates/js/translated/part.js:2075
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1169 templates/js/translated/order.js:2296
+#: templates/js/translated/order.js:1256 templates/js/translated/order.js:2384
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:1210 templates/js/translated/order.js:2338
-#: templates/js/translated/part.js:918
+#: templates/js/translated/order.js:1297 templates/js/translated/order.js:2426
+#: templates/js/translated/part.js:919
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:1269 templates/js/translated/part.js:964
+#: templates/js/translated/order.js:1356 templates/js/translated/part.js:965
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1273 templates/js/translated/order.js:2452
+#: templates/js/translated/order.js:1360 templates/js/translated/order.js:2540
+msgid "Duplicate line item"
+msgstr ""
+
+#: templates/js/translated/order.js:1361 templates/js/translated/order.js:2541
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:1274 templates/js/translated/order.js:2456
+#: templates/js/translated/order.js:1362 templates/js/translated/order.js:2545
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1314
+#: templates/js/translated/order.js:1402
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1352
+#: templates/js/translated/order.js:1440
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1439
+#: templates/js/translated/order.js:1527
msgid "Edit shipment"
msgstr ""
-#: templates/js/translated/order.js:1442
+#: templates/js/translated/order.js:1530
msgid "Complete shipment"
msgstr ""
-#: templates/js/translated/order.js:1447
+#: templates/js/translated/order.js:1535
msgid "Delete shipment"
msgstr ""
-#: templates/js/translated/order.js:1467
+#: templates/js/translated/order.js:1555
msgid "Edit Shipment"
msgstr ""
-#: templates/js/translated/order.js:1484
+#: templates/js/translated/order.js:1572
msgid "Delete Shipment"
msgstr ""
-#: templates/js/translated/order.js:1518
+#: templates/js/translated/order.js:1606
msgid "No matching shipments found"
msgstr ""
-#: templates/js/translated/order.js:1528
+#: templates/js/translated/order.js:1616
msgid "Shipment Reference"
msgstr ""
-#: templates/js/translated/order.js:1552
+#: templates/js/translated/order.js:1640
msgid "Not shipped"
msgstr ""
-#: templates/js/translated/order.js:1558
+#: templates/js/translated/order.js:1646
msgid "Tracking"
msgstr ""
-#: templates/js/translated/order.js:1718
+#: templates/js/translated/order.js:1806
msgid "Allocate Stock Items to Sales Order"
msgstr ""
-#: templates/js/translated/order.js:1926
+#: templates/js/translated/order.js:2014
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:2015
+#: templates/js/translated/order.js:2103
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:2032
+#: templates/js/translated/order.js:2120
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:2033
+#: templates/js/translated/order.js:2121
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:2076 templates/js/translated/order.js:2165
-#: templates/js/translated/stock.js:1559
+#: templates/js/translated/order.js:2164 templates/js/translated/order.js:2253
+#: templates/js/translated/stock.js:1515
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/order.js:2084 templates/js/translated/order.js:2174
+#: templates/js/translated/order.js:2172 templates/js/translated/order.js:2262
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:2436
+#: templates/js/translated/order.js:2524
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:2442
+#: templates/js/translated/order.js:2530
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:2449 templates/js/translated/order.js:2616
+#: templates/js/translated/order.js:2537 templates/js/translated/order.js:2727
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:2460
+#: templates/js/translated/order.js:2549
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:2463
+#: templates/js/translated/order.js:2552
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:2522
+#: templates/js/translated/order.js:2633
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:2624
+#: templates/js/translated/order.js:2735
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:2638
+#: templates/js/translated/order.js:2749
msgid "No matching line items"
msgstr ""
@@ -8677,117 +8748,117 @@ msgstr ""
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:481
+#: templates/js/translated/part.js:482
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:509 templates/js/translated/part.js:594
+#: templates/js/translated/part.js:510 templates/js/translated/part.js:595
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:513 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:514 templates/js/translated/part.js:599
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:525
+#: templates/js/translated/part.js:526
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:529
+#: templates/js/translated/part.js:530
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:644
+#: templates/js/translated/part.js:645
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1034
+#: templates/js/translated/part.js:1035
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1058
+#: templates/js/translated/part.js:1059
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1125 templates/js/translated/part.js:1385
+#: templates/js/translated/part.js:1126 templates/js/translated/part.js:1386
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1295
+#: templates/js/translated/part.js:1296
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1318
+#: templates/js/translated/part.js:1319
#: templates/js/translated/table_filters.js:425
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1409 templates/js/translated/part.js:1581
-#: templates/js/translated/stock.js:2572
+#: templates/js/translated/part.js:1410 templates/js/translated/part.js:1582
+#: templates/js/translated/stock.js:2528
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1425
+#: templates/js/translated/part.js:1426
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1600 templates/js/translated/stock.js:2591
+#: templates/js/translated/part.js:1601 templates/js/translated/stock.js:2547
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1664
+#: templates/js/translated/part.js:1665
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1678 templates/js/translated/stock.js:2635
+#: templates/js/translated/part.js:1679 templates/js/translated/stock.js:2591
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1722
+#: templates/js/translated/part.js:1723
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1773 templates/js/translated/stock.js:1270
+#: templates/js/translated/part.js:1774 templates/js/translated/stock.js:1226
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1774 templates/js/translated/stock.js:1271
-#: templates/js/translated/stock.js:1517
+#: templates/js/translated/part.js:1775 templates/js/translated/stock.js:1227
+#: templates/js/translated/stock.js:1473
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1780
+#: templates/js/translated/part.js:1781
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1802
+#: templates/js/translated/part.js:1803
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1816
+#: templates/js/translated/part.js:1817
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1841
+#: templates/js/translated/part.js:1842
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1896
+#: templates/js/translated/part.js:1897
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1897
+#: templates/js/translated/part.js:1898
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1998
+#: templates/js/translated/part.js:1999
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:2017
+#: templates/js/translated/part.js:2018
msgid "Single Price Difference"
msgstr ""
@@ -8861,368 +8932,356 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:102
+#: templates/js/translated/stock.js:101
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:111
+#: templates/js/translated/stock.js:110
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:154
+#: templates/js/translated/stock.js:153
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:194
+#: templates/js/translated/stock.js:193
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:233
+#: templates/js/translated/stock.js:232
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/stock.js:238
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:381
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:395
+#: templates/js/translated/stock.js:394
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:420
+#: templates/js/translated/stock.js:419
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425
+#: templates/js/translated/stock.js:423 templates/js/translated/stock.js:424
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:441
+#: templates/js/translated/stock.js:440
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:461
+#: templates/js/translated/stock.js:460
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:470
+#: templates/js/translated/stock.js:469
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:515
-msgid "Export Stock"
-msgstr ""
-
-#: templates/js/translated/stock.js:526
-msgid "Include Sublocations"
-msgstr ""
-
-#: templates/js/translated/stock.js:527
-msgid "Include stock items in sublocations"
-msgstr ""
-
-#: templates/js/translated/stock.js:636
+#: templates/js/translated/stock.js:592
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:637
+#: templates/js/translated/stock.js:593
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:714
+#: templates/js/translated/stock.js:670
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:715
+#: templates/js/translated/stock.js:671
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:717
+#: templates/js/translated/stock.js:673
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:718
+#: templates/js/translated/stock.js:674
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:804
+#: templates/js/translated/stock.js:760
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:805
+#: templates/js/translated/stock.js:761
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:900
+#: templates/js/translated/stock.js:856
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:901
+#: templates/js/translated/stock.js:857
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:907
+#: templates/js/translated/stock.js:863
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:908
+#: templates/js/translated/stock.js:864
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:912
+#: templates/js/translated/stock.js:868
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:913
+#: templates/js/translated/stock.js:869
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:917
+#: templates/js/translated/stock.js:873
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:918 users/models.py:213
+#: templates/js/translated/stock.js:874 users/models.py:213
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:922
+#: templates/js/translated/stock.js:878
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1011
+#: templates/js/translated/stock.js:967
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1011
+#: templates/js/translated/stock.js:967
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1051
+#: templates/js/translated/stock.js:1007
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1209
+#: templates/js/translated/stock.js:1165
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1211
+#: templates/js/translated/stock.js:1167
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1216
+#: templates/js/translated/stock.js:1172
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1263
+#: templates/js/translated/stock.js:1219
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1266
+#: templates/js/translated/stock.js:1222
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1292
+#: templates/js/translated/stock.js:1248
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1348
+#: templates/js/translated/stock.js:1304
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1500
+#: templates/js/translated/stock.js:1456
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1522
+#: templates/js/translated/stock.js:1478
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1551
+#: templates/js/translated/stock.js:1507
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1511
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1563
+#: templates/js/translated/stock.js:1519
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1569
+#: templates/js/translated/stock.js:1525
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1727
+#: templates/js/translated/stock.js:1683
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1732
+#: templates/js/translated/stock.js:1688
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1691
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1739
+#: templates/js/translated/stock.js:1695
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1741
+#: templates/js/translated/stock.js:1697
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1747
+#: templates/js/translated/stock.js:1703
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1749
+#: templates/js/translated/stock.js:1705
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1751
+#: templates/js/translated/stock.js:1707
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1756
+#: templates/js/translated/stock.js:1712
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1763
+#: templates/js/translated/stock.js:1719
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1765
+#: templates/js/translated/stock.js:1721
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1767
+#: templates/js/translated/stock.js:1723
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1771
+#: templates/js/translated/stock.js:1727
#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1821
+#: templates/js/translated/stock.js:1777
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1903
+#: templates/js/translated/stock.js:1859
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1941
+#: templates/js/translated/stock.js:1897
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1962 templates/js/translated/stock.js:2010
+#: templates/js/translated/stock.js:1918 templates/js/translated/stock.js:1966
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:2050
+#: templates/js/translated/stock.js:2006
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:2077
+#: templates/js/translated/stock.js:2033
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:2079
+#: templates/js/translated/stock.js:2035
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:2278
+#: templates/js/translated/stock.js:2234
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2292
+#: templates/js/translated/stock.js:2248
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2293
+#: templates/js/translated/stock.js:2249
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2472
+#: templates/js/translated/stock.js:2428
msgid "Allocated Quantity"
msgstr ""
-#: templates/js/translated/stock.js:2682
+#: templates/js/translated/stock.js:2638
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2707
+#: templates/js/translated/stock.js:2663
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2726
+#: templates/js/translated/stock.js:2682
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2745
+#: templates/js/translated/stock.js:2701
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2763
+#: templates/js/translated/stock.js:2719
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2786
+#: templates/js/translated/stock.js:2742
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2794
+#: templates/js/translated/stock.js:2750
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2835
+#: templates/js/translated/stock.js:2791
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2836
+#: templates/js/translated/stock.js:2792
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2887
+#: templates/js/translated/stock.js:2843
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2938
+#: templates/js/translated/stock.js:2894
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2974
+#: templates/js/translated/stock.js:2930
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2975
+#: templates/js/translated/stock.js:2931
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2977
+#: templates/js/translated/stock.js:2933
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2978
+#: templates/js/translated/stock.js:2934
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2979
+#: templates/js/translated/stock.js:2935
msgid "The Stock Item is serialized and does not belong to another item"
msgstr ""
-#: templates/js/translated/stock.js:2992
+#: templates/js/translated/stock.js:2948
msgid "Select part to install"
msgstr ""
@@ -9429,60 +9488,68 @@ msgstr ""
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:368
+#: templates/js/translated/tables.js:50
+msgid "Export Table Data"
+msgstr ""
+
+#: templates/js/translated/tables.js:54
+msgid "Select File Format"
+msgstr ""
+
+#: templates/js/translated/tables.js:433
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:371
+#: templates/js/translated/tables.js:436
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:376
+#: templates/js/translated/tables.js:441
msgid "Showing all rows"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:382 templates/search_form.html:6
+#: templates/js/translated/tables.js:447 templates/search_form.html:6
#: templates/search_form.html:7
msgid "Search"
msgstr ""
-#: templates/js/translated/tables.js:385
+#: templates/js/translated/tables.js:450
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:388
+#: templates/js/translated/tables.js:453
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:391
+#: templates/js/translated/tables.js:456
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:394
+#: templates/js/translated/tables.js:459
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:397
+#: templates/js/translated/tables.js:462
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:400
+#: templates/js/translated/tables.js:465
msgid "All"
msgstr ""
@@ -9586,63 +9653,59 @@ msgstr ""
msgid "Email settings not configured"
msgstr ""
-#: templates/stock_table.html:14
-msgid "Export Stock Information"
-msgstr ""
-
-#: templates/stock_table.html:20
+#: templates/stock_table.html:17
msgid "Barcode Actions"
msgstr ""
-#: templates/stock_table.html:36
+#: templates/stock_table.html:33
msgid "Print test reports"
msgstr ""
-#: templates/stock_table.html:43
+#: templates/stock_table.html:40
msgid "Stock Options"
msgstr ""
-#: templates/stock_table.html:48
+#: templates/stock_table.html:45
msgid "Add to selected stock items"
msgstr ""
-#: templates/stock_table.html:49
+#: templates/stock_table.html:46
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:50
+#: templates/stock_table.html:47
msgid "Stocktake selected stock items"
msgstr ""
-#: templates/stock_table.html:51
+#: templates/stock_table.html:48
msgid "Move selected stock items"
msgstr ""
-#: templates/stock_table.html:52
+#: templates/stock_table.html:49
msgid "Merge selected stock items"
msgstr ""
-#: templates/stock_table.html:52
+#: templates/stock_table.html:49
msgid "Merge stock"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:50
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:52
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:52
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:55
msgid "Delete selected items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:55
msgid "Delete stock"
msgstr ""
diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.po b/InvenTree/locale/pl/LC_MESSAGES/django.po
index bcb743a2ee..beb1d8626c 100644
--- a/InvenTree/locale/pl/LC_MESSAGES/django.po
+++ b/InvenTree/locale/pl/LC_MESSAGES/django.po
@@ -1,10 +1,10 @@
-#: templates/js/translated/order.js:2090
+#: templates/js/translated/order.js:2178
msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-03-01 13:34+0000\n"
-"PO-Revision-Date: 2022-03-01 14:09\n"
+"POT-Creation-Date: 2022-03-07 04:31+0000\n"
+"PO-Revision-Date: 2022-03-07 04:47\n"
"Last-Translator: \n"
"Language-Team: Polish\n"
"Language: pl_PL\n"
@@ -86,7 +86,7 @@ msgid "Duplicate serial: {sn}"
msgstr ""
#: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435
-#: stock/views.py:1101
+#: stock/views.py:983
msgid "Invalid quantity provided"
msgstr "Podano nieprawidłową ilość"
@@ -114,100 +114,100 @@ msgstr "Nie znaleziono numerów seryjnych"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Ilość numerów seryjnych ({s}) musi odpowiadać ilości ({q})"
-#: InvenTree/models.py:176
+#: InvenTree/models.py:185
msgid "Missing file"
msgstr "Brak pliku"
-#: InvenTree/models.py:177
+#: InvenTree/models.py:186
msgid "Missing external link"
msgstr "Brak zewnętrznego odnośnika"
-#: InvenTree/models.py:188 stock/models.py:2071
+#: InvenTree/models.py:197 stock/models.py:2123
#: templates/js/translated/attachment.js:119
msgid "Attachment"
msgstr "Załącznik"
-#: InvenTree/models.py:189
+#: InvenTree/models.py:198
msgid "Select file to attach"
msgstr "Wybierz plik do załączenia"
-#: InvenTree/models.py:195 company/models.py:131 company/models.py:348
+#: InvenTree/models.py:204 company/models.py:131 company/models.py:348
#: company/models.py:564 order/models.py:127 part/models.py:860
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1346
+#: templates/js/translated/company.js:829 templates/js/translated/part.js:1347
msgid "Link"
msgstr "Łącze"
-#: InvenTree/models.py:196 build/models.py:330 part/models.py:861
-#: stock/models.py:566
+#: InvenTree/models.py:205 build/models.py:332 part/models.py:861
+#: stock/models.py:618
msgid "Link to external URL"
msgstr "Link do zewnętrznego adresu URL"
-#: InvenTree/models.py:199 templates/js/translated/attachment.js:163
+#: InvenTree/models.py:208 templates/js/translated/attachment.js:163
msgid "Comment"
msgstr "Komentarz"
-#: InvenTree/models.py:199
+#: InvenTree/models.py:208
msgid "File comment"
msgstr "Komentarz pliku"
-#: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1277
+#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1277
#: common/models.py:1278 common/models.py:1506 common/models.py:1507
-#: part/models.py:2303 part/models.py:2323
+#: part/models.py:2317 part/models.py:2337
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2817
+#: templates/js/translated/stock.js:2773
msgid "User"
msgstr "Użytkownik"
-#: InvenTree/models.py:209
+#: InvenTree/models.py:218
msgid "upload date"
msgstr "data przesłania"
-#: InvenTree/models.py:232
+#: InvenTree/models.py:241
msgid "Filename must not be empty"
msgstr "Nazwa pliku nie może być pusta"
-#: InvenTree/models.py:255
+#: InvenTree/models.py:264
msgid "Invalid attachment directory"
msgstr "Nieprawidłowy katalog załącznika"
-#: InvenTree/models.py:265
+#: InvenTree/models.py:274
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Nazwa pliku zawiera niedozwolony znak '{c}'"
-#: InvenTree/models.py:268
+#: InvenTree/models.py:277
msgid "Filename missing extension"
msgstr "Brak rozszerzenia w nazwie pliku"
-#: InvenTree/models.py:275
+#: InvenTree/models.py:284
msgid "Attachment with this filename already exists"
msgstr "Załącznik o tej nazwie już istnieje"
-#: InvenTree/models.py:282
+#: InvenTree/models.py:291
msgid "Error renaming file"
msgstr "Błąd zmiany nazwy pliku"
-#: InvenTree/models.py:317
+#: InvenTree/models.py:326
msgid "Invalid choice"
msgstr "Błędny wybór"
-#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1492
+#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1492
#: company/models.py:415 label/models.py:112 part/models.py:804
-#: part/models.py:2487 plugin/models.py:40 report/models.py:181
+#: part/models.py:2501 plugin/models.py:40 report/models.py:181
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:48
#: templates/InvenTree/settings/plugin.html:125
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:319
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:567
-#: templates/js/translated/part.js:706 templates/js/translated/part.js:1653
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/company.js:641 templates/js/translated/part.js:568
+#: templates/js/translated/part.js:707 templates/js/translated/part.js:1654
+#: templates/js/translated/stock.js:2573
msgid "Name"
msgstr "Nazwa"
-#: InvenTree/models.py:340 build/models.py:207
+#: InvenTree/models.py:349 build/models.py:209
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
@@ -219,28 +219,28 @@ msgstr "Nazwa"
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:92
#: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:765
-#: templates/js/translated/build.js:1920 templates/js/translated/company.js:345
+#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763
+#: templates/js/translated/build.js:1973 templates/js/translated/company.js:345
#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:911
-#: templates/js/translated/order.js:1105 templates/js/translated/order.js:1366
-#: templates/js/translated/part.js:626 templates/js/translated/part.js:1021
-#: templates/js/translated/part.js:1106 templates/js/translated/part.js:1276
-#: templates/js/translated/part.js:1672 templates/js/translated/part.js:1741
-#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2446
-#: templates/js/translated/stock.js:2629 templates/js/translated/stock.js:2667
+#: templates/js/translated/company.js:840 templates/js/translated/order.js:971
+#: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454
+#: templates/js/translated/part.js:627 templates/js/translated/part.js:1022
+#: templates/js/translated/part.js:1107 templates/js/translated/part.js:1277
+#: templates/js/translated/part.js:1673 templates/js/translated/part.js:1742
+#: templates/js/translated/stock.js:1656 templates/js/translated/stock.js:2402
+#: templates/js/translated/stock.js:2585 templates/js/translated/stock.js:2623
msgid "Description"
msgstr "Opis"
-#: InvenTree/models.py:341
+#: InvenTree/models.py:350
msgid "Description (optional)"
msgstr "Opis (opcjonalny)"
-#: InvenTree/models.py:349
+#: InvenTree/models.py:358
msgid "parent"
msgstr "nadrzędny"
-#: InvenTree/serializers.py:65 part/models.py:2805
+#: InvenTree/serializers.py:65 part/models.py:2820
msgid "Must be a valid number"
msgstr "Numer musi być prawidłowy"
@@ -294,87 +294,87 @@ msgstr ""
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:665
msgid "German"
msgstr "Niemiecki"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:666
msgid "Greek"
msgstr "Grecki"
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:667
msgid "English"
msgstr "Angielski"
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:668
msgid "Spanish"
msgstr "Hiszpański"
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:669
msgid "Spanish (Mexican)"
msgstr "Hiszpański (Meksyk)"
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:670
msgid "French"
msgstr "Francuski"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:671
msgid "Hebrew"
msgstr "Hebrajski"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:672
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:673
msgid "Italian"
msgstr "Włoski"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:674
msgid "Japanese"
msgstr "Japoński"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:675
msgid "Korean"
msgstr "Koreański"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:676
msgid "Dutch"
msgstr "Holenderski"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:677
msgid "Norwegian"
msgstr "Norweski"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:678
msgid "Polish"
msgstr "Polski"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:679
msgid "Portugese"
msgstr "Portugalski"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:680
msgid "Russian"
msgstr "Rosyjski"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:681
msgid "Swedish"
msgstr "Szwedzki"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:682
msgid "Thai"
msgstr "Tajski"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:683
msgid "Turkish"
msgstr "Turecki"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:684
msgid "Vietnamese"
msgstr "Wietnamski"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:685
msgid "Chinese"
msgstr "Chiński"
@@ -421,7 +421,7 @@ msgid "Returned"
msgstr "Zwrócone"
#: InvenTree/status_codes.py:143 order/models.py:997
-#: templates/js/translated/order.js:2097 templates/js/translated/order.js:2394
+#: templates/js/translated/order.js:2185 templates/js/translated/order.js:2482
msgid "Shipped"
msgstr "Wysłane"
@@ -501,7 +501,7 @@ msgstr ""
msgid "Split child item"
msgstr "Podziel element podrzędny"
-#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2204
+#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2160
msgid "Merged stock items"
msgstr ""
@@ -593,43 +593,43 @@ msgstr "Hasła muszą być zgodne"
msgid "System Information"
msgstr "Informacja systemowa"
-#: barcodes/api.py:54 barcodes/api.py:152
+#: barcodes/api.py:55 barcodes/api.py:156
msgid "Must provide barcode_data parameter"
msgstr ""
-#: barcodes/api.py:128
+#: barcodes/api.py:132
msgid "No match found for barcode data"
msgstr ""
-#: barcodes/api.py:130
+#: barcodes/api.py:134
msgid "Match found for barcode data"
msgstr ""
-#: barcodes/api.py:155
+#: barcodes/api.py:159
msgid "Must provide stockitem parameter"
msgstr ""
-#: barcodes/api.py:162
+#: barcodes/api.py:166
msgid "No matching stock item found"
msgstr "Nie znaleziono pasujących stanów magazynowych"
-#: barcodes/api.py:193
+#: barcodes/api.py:197
msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:197
+#: barcodes/api.py:201
msgid "Barcode already matches Stock Location"
msgstr ""
-#: barcodes/api.py:201
+#: barcodes/api.py:205
msgid "Barcode already matches Part"
msgstr ""
-#: barcodes/api.py:207 barcodes/api.py:219
+#: barcodes/api.py:211 barcodes/api.py:223
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: barcodes/api.py:225
+#: barcodes/api.py:229
msgid "Barcode associated with Stock Item"
msgstr ""
@@ -641,18 +641,18 @@ msgstr "Na pewno anulować?"
msgid "Confirm build cancellation"
msgstr ""
-#: build/models.py:133
+#: build/models.py:135
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:139 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:676 templates/js/translated/stock.js:2422
+#: templates/js/translated/build.js:677 templates/js/translated/stock.js:2378
msgid "Build Order"
msgstr "Zlecenie Budowy"
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:140 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:92
#: order/templates/order/so_sidebar.html:13
@@ -662,41 +662,41 @@ msgstr "Zlecenie Budowy"
msgid "Build Orders"
msgstr "Zlecenia budowy"
-#: build/models.py:198
+#: build/models.py:200
msgid "Build Order Reference"
msgstr "Odwołanie do zamówienia wykonania"
-#: build/models.py:199 order/models.py:213 order/models.py:563
-#: order/models.py:843 part/models.py:2716
+#: build/models.py:201 order/models.py:213 order/models.py:563
+#: order/models.py:843 part/models.py:2731
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:772 templates/js/translated/build.js:1401
-#: templates/js/translated/order.js:1136 templates/js/translated/order.js:2261
+#: templates/js/translated/bom.js:770 templates/js/translated/build.js:1402
+#: templates/js/translated/order.js:1223 templates/js/translated/order.js:2349
msgid "Reference"
msgstr "Referencja"
-#: build/models.py:210
+#: build/models.py:212
msgid "Brief description of the build"
msgstr "Krótki opis budowy"
-#: build/models.py:219 build/templates/build/build_base.html:169
+#: build/models.py:221 build/templates/build/build_base.html:169
#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr "Budowa nadrzędna"
-#: build/models.py:220
+#: build/models.py:222
msgid "BuildOrder to which this build is allocated"
msgstr "Zamówienie budowy, do którego budowa jest przypisana"
-#: build/models.py:225 build/templates/build/build_base.html:77
+#: build/models.py:227 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
#: order/models.py:912 order/models.py:986
#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359
-#: part/models.py:2249 part/models.py:2265 part/models.py:2284
-#: part/models.py:2301 part/models.py:2403 part/models.py:2525
-#: part/models.py:2615 part/models.py:2691 part/models.py:2998
-#: part/serializers.py:666 part/templates/part/part_app_base.html:8
+#: part/models.py:2263 part/models.py:2279 part/models.py:2298
+#: part/models.py:2315 part/models.py:2417 part/models.py:2539
+#: part/models.py:2629 part/models.py:2706 part/models.py:3013
+#: part/serializers.py:669 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: part/templates/part/upload_bom.html:52
@@ -707,231 +707,231 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana"
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551
-#: templates/js/translated/bom.js:730 templates/js/translated/build.js:902
-#: templates/js/translated/build.js:1270 templates/js/translated/build.js:1655
-#: templates/js/translated/build.js:1925 templates/js/translated/company.js:492
+#: templates/js/translated/bom.js:728 templates/js/translated/build.js:903
+#: templates/js/translated/build.js:1271 templates/js/translated/build.js:1666
+#: templates/js/translated/build.js:1978 templates/js/translated/company.js:492
#: templates/js/translated/company.js:749 templates/js/translated/order.js:84
-#: templates/js/translated/order.js:651 templates/js/translated/order.js:1090
-#: templates/js/translated/order.js:1693 templates/js/translated/order.js:2050
-#: templates/js/translated/order.js:2245 templates/js/translated/part.js:1006
-#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1254
-#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1657
-#: templates/js/translated/stock.js:2892 templates/js/translated/stock.js:2991
+#: templates/js/translated/order.js:711 templates/js/translated/order.js:1177
+#: templates/js/translated/order.js:1781 templates/js/translated/order.js:2138
+#: templates/js/translated/order.js:2333 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1088 templates/js/translated/part.js:1255
+#: templates/js/translated/stock.js:518 templates/js/translated/stock.js:683
+#: templates/js/translated/stock.js:890 templates/js/translated/stock.js:1613
+#: templates/js/translated/stock.js:2848 templates/js/translated/stock.js:2947
msgid "Part"
msgstr "Część"
-#: build/models.py:233
+#: build/models.py:235
msgid "Select part to build"
msgstr "Wybierz część do budowy"
-#: build/models.py:238
+#: build/models.py:240
msgid "Sales Order Reference"
msgstr "Odwołanie do zamówienia sprzedaży"
-#: build/models.py:242
+#: build/models.py:244
msgid "SalesOrder to which this build is allocated"
msgstr "Zamówienie sprzedaży, do którego budowa jest przypisana"
-#: build/models.py:247 templates/js/translated/build.js:1643
-#: templates/js/translated/order.js:1681
+#: build/models.py:249 build/serializers.py:729
+#: templates/js/translated/build.js:1654 templates/js/translated/order.js:1769
msgid "Source Location"
msgstr "Lokalizacja źródła"
-#: build/models.py:251
+#: build/models.py:253
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr "Wybierz lokalizację, z której pobrać element do budowy (pozostaw puste, aby wziąć z dowolnej lokalizacji)"
-#: build/models.py:256
+#: build/models.py:258
msgid "Destination Location"
msgstr "Lokalizacja docelowa"
-#: build/models.py:260
+#: build/models.py:262
msgid "Select location where the completed items will be stored"
msgstr "Wybierz lokalizację, w której będą przechowywane ukończone elementy"
-#: build/models.py:264
+#: build/models.py:266
msgid "Build Quantity"
msgstr "Ilość do stworzenia"
-#: build/models.py:267
+#: build/models.py:269
msgid "Number of stock items to build"
msgstr "Ilość przedmiotów do zbudowania"
-#: build/models.py:271
+#: build/models.py:273
msgid "Completed items"
msgstr "Ukończone elementy"
-#: build/models.py:273
+#: build/models.py:275
msgid "Number of stock items which have been completed"
msgstr "Ilość produktów magazynowych które zostały ukończone"
-#: build/models.py:277 part/templates/part/part_base.html:234
+#: build/models.py:279 part/templates/part/part_base.html:234
msgid "Build Status"
msgstr "Status budowania"
-#: build/models.py:281
+#: build/models.py:283
msgid "Build status code"
msgstr "Kod statusu budowania"
-#: build/models.py:285 build/serializers.py:218 order/serializers.py:272
-#: stock/models.py:570 templates/js/translated/order.js:513
+#: build/models.py:287 build/serializers.py:218 order/serializers.py:272
+#: stock/models.py:622 templates/js/translated/order.js:573
msgid "Batch Code"
msgstr "Kod partii"
-#: build/models.py:289 build/serializers.py:219
+#: build/models.py:291 build/serializers.py:219
msgid "Batch code for this build output"
msgstr "Kod partii dla wyjścia budowy"
-#: build/models.py:292 order/models.py:129 part/models.py:999
-#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1379
+#: build/models.py:294 order/models.py:129 part/models.py:999
+#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1467
msgid "Creation Date"
msgstr "Data utworzenia"
-#: build/models.py:296 order/models.py:585
+#: build/models.py:298 order/models.py:585
msgid "Target completion date"
msgstr "Docelowy termin zakończenia"
-#: build/models.py:297
+#: build/models.py:299
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:255
-#: templates/js/translated/build.js:2002
+#: build/models.py:302 order/models.py:255
+#: templates/js/translated/build.js:2055
msgid "Completion Date"
msgstr "Data zakończenia"
-#: build/models.py:306
+#: build/models.py:308
msgid "completed by"
msgstr "zrealizowane przez"
-#: build/models.py:314 templates/js/translated/build.js:1970
+#: build/models.py:316 templates/js/translated/build.js:2023
msgid "Issued by"
msgstr "Wydany przez"
-#: build/models.py:315
+#: build/models.py:317
msgid "User who issued this build order"
msgstr "Użytkownik, który wydał to zamówienie"
-#: build/models.py:323 build/templates/build/build_base.html:190
+#: build/models.py:325 build/templates/build/build_base.html:190
#: build/templates/build/detail.html:116 order/models.py:143
#: order/templates/order/order_base.html:170
#: order/templates/order/sales_order_base.html:182 part/models.py:1003
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1982 templates/js/translated/order.js:945
+#: templates/js/translated/build.js:2035 templates/js/translated/order.js:1005
msgid "Responsible"
msgstr "Odpowiedzialny"
-#: build/models.py:324
+#: build/models.py:326
msgid "User responsible for this build order"
msgstr "Użytkownik odpowiedzialny za to zamówienie budowy"
-#: build/models.py:329 build/templates/build/detail.html:102
+#: build/models.py:331 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:564
+#: part/templates/part/part_base.html:354 stock/models.py:616
#: stock/templates/stock/item_base.html:352
msgid "External Link"
msgstr "Link Zewnętrzny"
-#: build/models.py:334 build/serializers.py:381
+#: build/models.py:336 build/serializers.py:381
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
#: order/models.py:147 order/models.py:845 order/models.py:1107
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/models.py:988
-#: part/templates/part/detail.html:146 part/templates/part/part_sidebar.html:57
+#: part/templates/part/detail.html:141 part/templates/part/part_sidebar.html:57
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:137 stock/forms.py:171 stock/models.py:636
-#: stock/models.py:1971 stock/models.py:2077 stock/serializers.py:332
+#: stock/forms.py:137 stock/forms.py:171 stock/models.py:688
+#: stock/models.py:2023 stock/models.py:2129 stock/serializers.py:332
#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:936
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1257
-#: templates/js/translated/order.js:1562 templates/js/translated/order.js:2419
-#: templates/js/translated/stock.js:1344 templates/js/translated/stock.js:1935
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934
+#: templates/js/translated/company.js:845 templates/js/translated/order.js:1344
+#: templates/js/translated/order.js:1650 templates/js/translated/order.js:2507
+#: templates/js/translated/stock.js:1300 templates/js/translated/stock.js:1891
msgid "Notes"
msgstr "Uwagi"
-#: build/models.py:335
+#: build/models.py:337
msgid "Extra build notes"
msgstr "Dodatkowe notatki do budowy"
-#: build/models.py:748
+#: build/models.py:750
msgid "No build output specified"
msgstr "Nie określono danych wyjściowych budowy"
-#: build/models.py:751
+#: build/models.py:753
msgid "Build output is already completed"
msgstr "Budowanie wyjścia jest już ukończone"
-#: build/models.py:754
+#: build/models.py:756
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1060
+#: build/models.py:1162
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1069
+#: build/models.py:1171
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1079
+#: build/models.py:1181
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1085 order/models.py:1225
+#: build/models.py:1187 order/models.py:1225
msgid "Allocation quantity must be greater than zero"
msgstr "Alokowana ilość musi być większa niż zero"
-#: build/models.py:1091
+#: build/models.py:1193
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1148
+#: build/models.py:1250
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1217 stock/templates/stock/item_base.html:324
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898
+#: build/models.py:1319 stock/templates/stock/item_base.html:324
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1951
#: templates/navbar.html:35
msgid "Build"
msgstr "Budowa"
-#: build/models.py:1218
+#: build/models.py:1320
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1234 build/serializers.py:576 order/serializers.py:783
+#: build/models.py:1336 build/serializers.py:576 order/serializers.py:783
#: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635
#: stock/serializers.py:753 stock/templates/stock/item_base.html:9
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:346
-#: templates/js/translated/build.js:687 templates/js/translated/build.js:692
-#: templates/js/translated/build.js:1657 templates/js/translated/build.js:2050
-#: templates/js/translated/order.js:85 templates/js/translated/order.js:1694
-#: templates/js/translated/order.js:1949 templates/js/translated/order.js:1954
-#: templates/js/translated/order.js:2057 templates/js/translated/order.js:2147
-#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728
-#: templates/js/translated/stock.js:2753
+#: templates/js/translated/build.js:688 templates/js/translated/build.js:693
+#: templates/js/translated/build.js:1668 templates/js/translated/build.js:2103
+#: templates/js/translated/order.js:85 templates/js/translated/order.js:1782
+#: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:2235
+#: templates/js/translated/stock.js:519 templates/js/translated/stock.js:684
+#: templates/js/translated/stock.js:2709
msgid "Stock Item"
msgstr "Element magazynowy"
-#: build/models.py:1235
+#: build/models.py:1337
msgid "Source stock item"
msgstr "Lokalizacja magazynowania przedmiotu"
-#: build/models.py:1247 build/serializers.py:188
+#: build/models.py:1349 build/serializers.py:188
#: build/templates/build/build_base.html:82
#: build/templates/build/detail.html:35 common/models.py:1317
#: company/forms.py:42 company/templates/company/supplier_part.html:251
#: order/models.py:836 order/models.py:1265 order/serializers.py:903
#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144
-#: part/forms.py:160 part/forms.py:176 part/models.py:2707
-#: part/templates/part/detail.html:1008 part/templates/part/detail.html:1094
+#: part/forms.py:160 part/forms.py:176 part/models.py:2722
+#: part/templates/part/detail.html:994 part/templates/part/detail.html:1080
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_build_order_base.html:114
@@ -943,32 +943,32 @@ msgstr "Lokalizacja magazynowania przedmiotu"
#: stock/templates/stock/item_base.html:176
#: stock/templates/stock/item_base.html:241
#: stock/templates/stock/item_base.html:249
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:780
-#: templates/js/translated/build.js:375 templates/js/translated/build.js:523
-#: templates/js/translated/build.js:714 templates/js/translated/build.js:911
-#: templates/js/translated/build.js:921 templates/js/translated/build.js:1297
-#: templates/js/translated/build.js:1658
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778
+#: templates/js/translated/build.js:376 templates/js/translated/build.js:524
+#: templates/js/translated/build.js:715 templates/js/translated/build.js:912
+#: templates/js/translated/build.js:922 templates/js/translated/build.js:1298
+#: templates/js/translated/build.js:1669
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:101 templates/js/translated/order.js:1142
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:1976
-#: templates/js/translated/order.js:2064 templates/js/translated/order.js:2153
-#: templates/js/translated/order.js:2267 templates/js/translated/part.js:906
-#: templates/js/translated/part.js:1884 templates/js/translated/part.js:2007
-#: templates/js/translated/part.js:2085 templates/js/translated/stock.js:391
-#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758
-#: templates/js/translated/stock.js:2802 templates/js/translated/stock.js:2904
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:1229
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:2064
+#: templates/js/translated/order.js:2152 templates/js/translated/order.js:2241
+#: templates/js/translated/order.js:2355 templates/js/translated/part.js:907
+#: templates/js/translated/part.js:1885 templates/js/translated/part.js:2008
+#: templates/js/translated/part.js:2086 templates/js/translated/stock.js:390
+#: templates/js/translated/stock.js:544 templates/js/translated/stock.js:714
+#: templates/js/translated/stock.js:2758 templates/js/translated/stock.js:2860
msgid "Quantity"
msgstr "Ilość"
-#: build/models.py:1248
+#: build/models.py:1350
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1256
+#: build/models.py:1358
msgid "Install into"
msgstr "Zainstaluj do"
-#: build/models.py:1257
+#: build/models.py:1359
msgid "Destination stock item"
msgstr "Docelowa lokalizacja magazynowa przedmiotu"
@@ -997,8 +997,8 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:201 build/serializers.py:596 order/models.py:280
-#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:826
-#: stock/models.py:404 stock/models.py:1180 stock/serializers.py:305
+#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:836
+#: stock/models.py:456 stock/models.py:1232 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr "Ilość musi być większa niż zero"
@@ -1012,8 +1012,8 @@ msgstr ""
#: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907
#: stock/forms.py:78 stock/serializers.py:314
-#: templates/js/translated/order.js:524 templates/js/translated/stock.js:238
-#: templates/js/translated/stock.js:392
+#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237
+#: templates/js/translated/stock.js:391
msgid "Serial Numbers"
msgstr "Numer seryjny"
@@ -1029,7 +1029,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:275 stock/api.py:549
+#: build/serializers.py:275 stock/api.py:551
msgid "The following serial numbers already exist"
msgstr ""
@@ -1041,13 +1041,13 @@ msgstr ""
#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788
#: stock/serializers.py:1029 stock/templates/stock/item_base.html:292
#: templates/js/translated/barcode.js:384
-#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:699
-#: templates/js/translated/build.js:1309 templates/js/translated/order.js:551
-#: templates/js/translated/order.js:1961 templates/js/translated/order.js:2072
-#: templates/js/translated/order.js:2080 templates/js/translated/order.js:2161
-#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564
-#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936
-#: templates/js/translated/stock.js:1807 templates/js/translated/stock.js:2694
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700
+#: templates/js/translated/build.js:1310 templates/js/translated/order.js:611
+#: templates/js/translated/order.js:2049 templates/js/translated/order.js:2160
+#: templates/js/translated/order.js:2168 templates/js/translated/order.js:2249
+#: templates/js/translated/part.js:179 templates/js/translated/stock.js:520
+#: templates/js/translated/stock.js:685 templates/js/translated/stock.js:892
+#: templates/js/translated/stock.js:1763 templates/js/translated/stock.js:2650
msgid "Location"
msgstr "Lokalizacja"
@@ -1058,10 +1058,10 @@ msgstr ""
#: build/serializers.py:377 build/templates/build/build_base.html:142
#: build/templates/build/detail.html:63 order/models.py:579
#: order/serializers.py:290 stock/templates/stock/item_base.html:182
-#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1954
-#: templates/js/translated/order.js:656 templates/js/translated/order.js:915
-#: templates/js/translated/order.js:1371 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2771 templates/js/translated/stock.js:2920
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2007
+#: templates/js/translated/order.js:716 templates/js/translated/order.js:975
+#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2727 templates/js/translated/stock.js:2876
msgid "Status"
msgstr "Status"
@@ -1073,7 +1073,7 @@ msgstr ""
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:445 templates/js/translated/build.js:150
+#: build/serializers.py:445 templates/js/translated/build.js:151
msgid "Required stock has not been fully allocated"
msgstr ""
@@ -1085,7 +1085,7 @@ msgstr ""
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:461 templates/js/translated/build.js:154
+#: build/serializers.py:461 templates/js/translated/build.js:155
msgid "Required build quantity has not been completed"
msgstr ""
@@ -1097,8 +1097,8 @@ msgstr ""
msgid "No build outputs have been created for this build order"
msgstr ""
-#: build/serializers.py:501 build/serializers.py:550 part/models.py:2831
-#: part/models.py:2990
+#: build/serializers.py:501 build/serializers.py:550 part/models.py:2846
+#: part/models.py:3005
msgid "BOM Item"
msgstr ""
@@ -1135,6 +1135,26 @@ msgstr ""
msgid "Allocation items must be provided"
msgstr ""
+#: build/serializers.py:730
+msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
+msgstr ""
+
+#: build/serializers.py:735
+msgid "Interchangeable Stock"
+msgstr ""
+
+#: build/serializers.py:736
+msgid "Stock items in multiple locations can be used interchangeably"
+msgstr ""
+
+#: build/serializers.py:741
+msgid "Substitute Stock"
+msgstr ""
+
+#: build/serializers.py:742
+msgid "Allow allocation of substitute parts"
+msgstr ""
+
#: build/tasks.py:98
msgid "Stock required for build order"
msgstr ""
@@ -1206,9 +1226,9 @@ msgstr ""
#: order/templates/order/order_base.html:156
#: order/templates/order/sales_order_base.html:163
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1994 templates/js/translated/order.js:932
-#: templates/js/translated/order.js:1204 templates/js/translated/order.js:1387
-#: templates/js/translated/order.js:2330 templates/js/translated/part.js:910
+#: templates/js/translated/build.js:2047 templates/js/translated/order.js:992
+#: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475
+#: templates/js/translated/order.js:2418 templates/js/translated/part.js:911
msgid "Target Date"
msgstr "Data docelowa"
@@ -1230,7 +1250,7 @@ msgstr "Zaległe"
#: build/templates/build/build_base.html:163
#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
#: order/templates/order/sales_order_base.html:170
-#: templates/js/translated/build.js:1940
+#: templates/js/translated/build.js:1993
#: templates/js/translated/table_filters.js:365
msgid "Completed"
msgstr "Zakończone"
@@ -1242,7 +1262,7 @@ msgstr "Zakończone"
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:286
-#: templates/js/translated/order.js:1326 templates/js/translated/stock.js:2436
+#: templates/js/translated/order.js:1414 templates/js/translated/stock.js:2392
msgid "Sales Order"
msgstr "Zamówienie zakupu"
@@ -1277,7 +1297,7 @@ msgid "Stock can be taken from any available location."
msgstr ""
#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133
-#: templates/js/translated/order.js:657 templates/js/translated/order.js:1246
+#: templates/js/translated/order.js:717 templates/js/translated/order.js:1333
msgid "Destination"
msgstr "Przeznaczenie"
@@ -1285,13 +1305,13 @@ msgstr "Przeznaczenie"
msgid "Destination location not specified"
msgstr "Nie określono lokalizacji docelowej"
-#: build/templates/build/detail.html:74 templates/js/translated/build.js:929
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:930
msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:310
-#: templates/js/translated/stock.js:1796 templates/js/translated/stock.js:2927
+#: templates/js/translated/stock.js:1752 templates/js/translated/stock.js:2883
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:238
msgid "Batch"
@@ -1300,7 +1320,7 @@ msgstr "Partia"
#: build/templates/build/detail.html:127
#: order/templates/order/order_base.html:143
#: order/templates/order/sales_order_base.html:157
-#: templates/js/translated/build.js:1962
+#: templates/js/translated/build.js:2015
msgid "Created"
msgstr "Utworzony"
@@ -1320,7 +1340,7 @@ msgstr ""
msgid "Allocate Stock to Build"
msgstr "Przydziel zapasy do budowy"
-#: build/templates/build/detail.html:177 templates/js/translated/build.js:1484
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1485
msgid "Unallocate stock"
msgstr "Cofnij przydział zapasów"
@@ -1329,111 +1349,119 @@ msgid "Unallocate Stock"
msgstr "Cofnij przydział zapasów"
#: build/templates/build/detail.html:180
-msgid "Allocate stock to build"
-msgstr "Przydziel zapasy do budowy"
+msgid "Automatically allocate stock to build"
+msgstr ""
-#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
+#: build/templates/build/detail.html:181
+msgid "Auto Allocate"
+msgstr ""
+
+#: build/templates/build/detail.html:183
+msgid "Manually allocate stock to build"
+msgstr ""
+
+#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8
msgid "Allocate Stock"
msgstr "Przydziel zapasy"
-#: build/templates/build/detail.html:184
+#: build/templates/build/detail.html:187
msgid "Order required parts"
msgstr "Zamów wymagane komponenty"
-#: build/templates/build/detail.html:185
+#: build/templates/build/detail.html:188
#: company/templates/company/detail.html:38
#: company/templates/company/detail.html:85 order/views.py:463
-#: part/templates/part/category.html:177
+#: part/templates/part/category.html:174
msgid "Order Parts"
msgstr "Zamów części"
-#: build/templates/build/detail.html:197
+#: build/templates/build/detail.html:200
msgid "Untracked stock has been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:201
+#: build/templates/build/detail.html:204
msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:208
+#: build/templates/build/detail.html:211
msgid "Allocate selected items"
msgstr ""
-#: build/templates/build/detail.html:218
+#: build/templates/build/detail.html:221
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:230
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:231
+#: build/templates/build/detail.html:234
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:232
+#: build/templates/build/detail.html:235
msgid "New Build Output"
msgstr ""
-#: build/templates/build/detail.html:246
+#: build/templates/build/detail.html:249
msgid "Output Actions"
msgstr ""
-#: build/templates/build/detail.html:250
+#: build/templates/build/detail.html:253
msgid "Complete selected build outputs"
msgstr ""
-#: build/templates/build/detail.html:251
+#: build/templates/build/detail.html:254
msgid "Complete outputs"
msgstr ""
-#: build/templates/build/detail.html:253
+#: build/templates/build/detail.html:256
msgid "Delete selected build outputs"
msgstr ""
-#: build/templates/build/detail.html:254
+#: build/templates/build/detail.html:257
msgid "Delete outputs"
msgstr ""
-#: build/templates/build/detail.html:270
+#: build/templates/build/detail.html:273
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19
+#: build/templates/build/detail.html:285 build/templates/build/sidebar.html:19
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:107
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:222
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217
#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:105
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr "Załączniki"
-#: build/templates/build/detail.html:298
+#: build/templates/build/detail.html:301
msgid "Build Notes"
msgstr "Notatki tworzenia"
-#: build/templates/build/detail.html:302 build/templates/build/detail.html:478
-#: company/templates/company/detail.html:188
-#: company/templates/company/detail.html:215
+#: build/templates/build/detail.html:305 build/templates/build/detail.html:481
+#: company/templates/company/detail.html:190
+#: company/templates/company/detail.html:217
#: order/templates/order/purchase_order_detail.html:80
#: order/templates/order/purchase_order_detail.html:108
#: order/templates/order/sales_order_detail.html:127
#: order/templates/order/sales_order_detail.html:186
-#: part/templates/part/detail.html:150 stock/templates/stock/item.html:125
+#: part/templates/part/detail.html:145 stock/templates/stock/item.html:125
#: stock/templates/stock/item.html:223
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:519
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:520
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:329
+#: build/templates/build/index.html:18 part/templates/part/detail.html:322
msgid "New Build Order"
msgstr "Nowe zlecenie budowy"
@@ -1658,7 +1686,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:732 part/models.py:2527 report/models.py:187
+#: common/models.py:732 part/models.py:2541 report/models.py:187
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:417
msgid "Template"
@@ -1668,7 +1696,7 @@ msgstr "Szablon"
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:739 part/models.py:951 templates/js/translated/bom.js:1300
+#: common/models.py:739 part/models.py:951 templates/js/translated/bom.js:1305
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:429
msgid "Assembly"
@@ -2243,7 +2271,7 @@ msgstr ""
#: common/models.py:1325 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:937 templates/js/translated/part.js:1889
+#: templates/js/translated/part.js:938 templates/js/translated/part.js:1890
msgid "Price"
msgstr "Cena"
@@ -2337,14 +2365,14 @@ msgstr ""
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
-#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:210
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208
#: templates/patterns/wizard/upload.html:35
msgid "Upload File"
msgstr "Wyślij plik"
#: common/views.py:94 order/views.py:244
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:211
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:209
#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
@@ -2472,7 +2500,7 @@ msgstr "Waluta"
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:508
+#: company/models.py:320 company/models.py:535 stock/models.py:560
#: stock/templates/stock/item_base.html:137 templates/js/translated/bom.js:541
msgid "Base Part"
msgstr "Część bazowa"
@@ -2499,8 +2527,8 @@ msgstr "Wybierz producenta"
#: company/models.py:342 company/templates/company/manufacturer_part.html:96
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1124
-#: templates/js/translated/part.js:245 templates/js/translated/part.js:895
+#: templates/js/translated/company.js:818 templates/js/translated/order.js:1211
+#: templates/js/translated/part.js:245 templates/js/translated/part.js:896
msgid "MPN"
msgstr "MPN"
@@ -2529,8 +2557,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2064 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1331
+#: stock/models.py:2116 templates/js/translated/company.js:647
+#: templates/js/translated/part.js:716 templates/js/translated/stock.js:1287
msgid "Value"
msgstr ""
@@ -2538,10 +2566,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:945 part/models.py:2495
+#: company/models.py:429 part/models.py:945 part/models.py:2509
#: part/templates/part/part_base.html:288
#: templates/InvenTree/settings/settings.html:324
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:721
+#: templates/js/translated/company.js:653 templates/js/translated/part.js:722
msgid "Units"
msgstr "Jednostki"
@@ -2559,8 +2587,8 @@ msgstr ""
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237
#: part/bom.py:265 stock/templates/stock/item_base.html:376
#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:898
-#: templates/js/translated/part.js:215 templates/js/translated/part.js:863
+#: templates/js/translated/company.js:774 templates/js/translated/order.js:958
+#: templates/js/translated/part.js:215 templates/js/translated/part.js:864
#: templates/js/translated/table_filters.js:388
msgid "Supplier"
msgstr "Dostawca"
@@ -2570,8 +2598,8 @@ msgid "Select supplier"
msgstr "Wybierz dostawcę"
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1111
-#: templates/js/translated/part.js:226 templates/js/translated/part.js:881
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198
+#: templates/js/translated/part.js:226 templates/js/translated/part.js:882
msgid "SKU"
msgstr "SKU"
@@ -2592,7 +2620,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:119
-#: part/models.py:2719 part/templates/part/upload_bom.html:59
+#: part/models.py:2734 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409
msgid "Note"
@@ -2607,8 +2635,8 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:532 stock/templates/stock/item_base.html:317
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1931
+#: stock/models.py:584 stock/templates/stock/item_base.html:317
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1887
msgid "Packaging"
msgstr "Opakowanie"
@@ -2676,11 +2704,11 @@ msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:83 order/models.py:574
-#: order/templates/order/sales_order_base.html:115 stock/models.py:551
-#: stock/models.py:552 stock/serializers.py:683
+#: order/templates/order/sales_order_base.html:115 stock/models.py:603
+#: stock/models.py:604 stock/serializers.py:683
#: stock/templates/stock/item_base.html:269
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1348
-#: templates/js/translated/stock.js:2735
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1436
+#: templates/js/translated/stock.js:2691
#: templates/js/translated/table_filters.js:392
msgid "Customer"
msgstr "Klient"
@@ -2711,7 +2739,7 @@ msgstr "Utwórz nowego dostawcę części"
#: company/templates/company/detail.html:20
#: company/templates/company/manufacturer_part.html:118
-#: part/templates/part/detail.html:367
+#: part/templates/part/detail.html:360
msgid "New Supplier Part"
msgstr "Nowy dostawca części"
@@ -2719,14 +2747,14 @@ msgstr "Nowy dostawca części"
#: company/templates/company/detail.html:79
#: company/templates/company/manufacturer_part.html:127
#: company/templates/company/manufacturer_part.html:156
-#: part/templates/part/category.html:171 part/templates/part/detail.html:376
-#: part/templates/part/detail.html:405
+#: part/templates/part/category.html:168 part/templates/part/detail.html:369
+#: part/templates/part/detail.html:398
msgid "Options"
msgstr "Opcje"
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177
+#: part/templates/part/category.html:174
msgid "Order parts"
msgstr "Zamów części"
@@ -2748,7 +2776,7 @@ msgstr "Części producenta"
msgid "Create new manufacturer part"
msgstr "Utwórz nową część producenta"
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:395
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:388
msgid "New Manufacturer Part"
msgstr "Nowa część producenta"
@@ -2762,7 +2790,7 @@ msgstr "Zapasy dostawcy"
#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:40
+#: part/templates/part/detail.html:80 part/templates/part/part_sidebar.html:40
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
@@ -2784,7 +2812,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:44
+#: part/templates/part/detail.html:103 part/templates/part/part_sidebar.html:44
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
@@ -2802,23 +2830,23 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/detail.html:168
-#: templates/js/translated/build.js:1281
+#: templates/js/translated/build.js:1282
msgid "Assigned Stock"
msgstr ""
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:186
msgid "Company Notes"
msgstr ""
-#: company/templates/company/detail.html:384
+#: company/templates/company/detail.html:380
#: company/templates/company/manufacturer_part.html:215
-#: part/templates/part/detail.html:449
+#: part/templates/part/detail.html:442
msgid "Delete Supplier Parts?"
msgstr ""
-#: company/templates/company/detail.html:385
+#: company/templates/company/detail.html:381
#: company/templates/company/manufacturer_part.html:216
-#: part/templates/part/detail.html:450
+#: part/templates/part/detail.html:443
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2835,7 +2863,7 @@ msgstr "Producenci"
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:34
#: company/templates/company/supplier_part.html:159
-#: part/templates/part/detail.html:88 part/templates/part/part_base.html:76
+#: part/templates/part/detail.html:83 part/templates/part/part_base.html:76
msgid "Order part"
msgstr "Zamów część"
@@ -2862,14 +2890,14 @@ msgid "Suppliers"
msgstr "Dostawcy"
#: company/templates/company/manufacturer_part.html:129
-#: part/templates/part/detail.html:378
+#: part/templates/part/detail.html:371
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
#: company/templates/company/manufacturer_part.html:158
#: company/templates/company/manufacturer_part.html:254
-#: part/templates/part/detail.html:378 part/templates/part/detail.html:407
+#: part/templates/part/detail.html:371 part/templates/part/detail.html:400
#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31
#: users/models.py:217
msgid "Delete"
@@ -2878,12 +2906,12 @@ msgstr "Usuń"
#: company/templates/company/manufacturer_part.html:143
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:17
-#: part/templates/part/detail.html:196 part/templates/part/part_sidebar.html:9
+#: part/templates/part/detail.html:191 part/templates/part/part_sidebar.html:9
msgid "Parameters"
msgstr "Parametry"
#: company/templates/company/manufacturer_part.html:147
-#: part/templates/part/detail.html:201
+#: part/templates/part/detail.html:196
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:66
msgid "New Parameter"
@@ -2894,7 +2922,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:191
-#: part/templates/part/detail.html:908
+#: part/templates/part/detail.html:894
msgid "Add Parameter"
msgstr "Dodaj parametr"
@@ -2923,9 +2951,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:516
+#: company/templates/company/supplier_part.html:24 stock/models.py:568
#: stock/templates/stock/item_base.html:381
-#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1888
+#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1844
msgid "Supplier Part"
msgstr ""
@@ -2951,7 +2979,7 @@ msgstr "Utwórz nowy towar"
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:166
-#: templates/js/translated/stock.js:368
+#: templates/js/translated/stock.js:367
msgid "New Stock Item"
msgstr "Nowy towar"
@@ -2961,7 +2989,7 @@ msgid "Supplier Part Orders"
msgstr ""
#: company/templates/company/supplier_part.html:160
-#: part/templates/part/detail.html:89
+#: part/templates/part/detail.html:84
msgid "Order Part"
msgstr ""
@@ -2972,7 +3000,7 @@ msgstr "Informacja cenowa"
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1319
+#: part/templates/part/prices.html:271 part/views.py:1254
msgid "Add Price Break"
msgstr ""
@@ -2980,11 +3008,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1381
+#: company/templates/company/supplier_part.html:224 part/views.py:1316
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1367
+#: company/templates/company/supplier_part.html:238 part/views.py:1302
msgid "Edit Price Break"
msgstr "Edytuj przedział cenowy"
@@ -3002,10 +3030,10 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:150
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/bom.js:553 templates/js/translated/part.js:495
-#: templates/js/translated/part.js:630 templates/js/translated/part.js:1147
-#: templates/js/translated/part.js:1308 templates/js/translated/stock.js:935
-#: templates/js/translated/stock.js:1711 templates/navbar.html:28
+#: templates/js/translated/bom.js:553 templates/js/translated/part.js:496
+#: templates/js/translated/part.js:631 templates/js/translated/part.js:1148
+#: templates/js/translated/part.js:1309 templates/js/translated/stock.js:891
+#: templates/js/translated/stock.js:1667 templates/navbar.html:28
msgid "Stock"
msgstr "Stan"
@@ -3028,7 +3056,7 @@ msgstr "Cennik"
#: stock/templates/stock/location.html:150
#: stock/templates/stock/location.html:162
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2641
+#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2597
#: templates/stats.html:105 templates/stats.html:114 users/models.py:43
msgid "Stock Items"
msgstr "Towary"
@@ -3058,20 +3086,20 @@ msgstr "Firmy"
msgid "New Company"
msgstr "Nowa firma"
-#: company/views.py:129 part/views.py:591
+#: company/views.py:129 part/views.py:589
msgid "Download Image"
msgstr "Pobierz obraz"
-#: company/views.py:158 part/views.py:623
+#: company/views.py:158 part/views.py:621
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:630
+#: company/views.py:165 part/views.py:628
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:639
+#: company/views.py:174 part/views.py:637
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3190,7 +3218,7 @@ msgid "Company from which the items are being ordered"
msgstr ""
#: order/models.py:231 order/templates/order/order_base.html:118
-#: templates/js/translated/order.js:907
+#: templates/js/translated/order.js:967
msgid "Supplier Reference"
msgstr ""
@@ -3247,7 +3275,7 @@ msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
#: order/models.py:589 order/models.py:1084
-#: templates/js/translated/order.js:1395 templates/js/translated/order.js:1546
+#: templates/js/translated/order.js:1483 templates/js/translated/order.js:1634
msgid "Shipment Date"
msgstr "Data wysyłki"
@@ -3292,7 +3320,7 @@ msgid "Supplier part must match supplier"
msgstr ""
#: order/models.py:891 order/models.py:982 order/models.py:1078
-#: templates/js/translated/order.js:1937 templates/js/translated/stock.js:2403
+#: templates/js/translated/order.js:2025 templates/js/translated/stock.js:2359
msgid "Order"
msgstr "Zamówienie"
@@ -3300,8 +3328,8 @@ msgstr "Zamówienie"
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:331
-#: templates/js/translated/order.js:876 templates/js/translated/part.js:838
-#: templates/js/translated/stock.js:1865 templates/js/translated/stock.js:2716
+#: templates/js/translated/order.js:936 templates/js/translated/part.js:839
+#: templates/js/translated/stock.js:1821 templates/js/translated/stock.js:2672
msgid "Purchase Order"
msgstr "Zlecenie zakupu"
@@ -3310,8 +3338,8 @@ msgid "Supplier part"
msgstr ""
#: order/models.py:920 order/templates/order/order_base.html:163
-#: templates/js/translated/order.js:654 templates/js/translated/order.js:1226
-#: templates/js/translated/part.js:932 templates/js/translated/part.js:959
+#: templates/js/translated/order.js:714 templates/js/translated/order.js:1313
+#: templates/js/translated/part.js:933 templates/js/translated/part.js:960
#: templates/js/translated/table_filters.js:312
msgid "Received"
msgstr "Odebrane"
@@ -3320,9 +3348,9 @@ msgstr "Odebrane"
msgid "Number of items received"
msgstr ""
-#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:645
+#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:697
#: stock/serializers.py:170 stock/templates/stock/item_base.html:338
-#: templates/js/translated/stock.js:1919
+#: templates/js/translated/stock.js:1875
msgid "Purchase Price"
msgstr "Cena zakupu"
@@ -3456,11 +3484,11 @@ msgstr ""
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:273 templates/js/translated/order.js:514
+#: order/serializers.py:273 templates/js/translated/order.js:574
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:281 templates/js/translated/order.js:525
+#: order/serializers.py:281 templates/js/translated/order.js:585
msgid "Enter serial numbers for incoming stock items"
msgstr ""
@@ -3578,7 +3606,7 @@ msgstr ""
#: order/templates/order/order_base.html:94
#: order/templates/order/sales_order_base.html:89
-#: templates/js/translated/stock.js:2459
+#: templates/js/translated/stock.js:2415
msgid "Order Status"
msgstr "Status zamówienia"
@@ -3650,10 +3678,10 @@ msgstr "Wybierz dostawcę części"
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/bom.js:76 templates/js/translated/build.js:380
-#: templates/js/translated/build.js:528 templates/js/translated/build.js:1547
-#: templates/js/translated/order.js:602 templates/js/translated/order.js:1605
-#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769
+#: templates/js/translated/bom.js:76 templates/js/translated/build.js:381
+#: templates/js/translated/build.js:529 templates/js/translated/build.js:1558
+#: templates/js/translated/order.js:662 templates/js/translated/order.js:1693
+#: templates/js/translated/stock.js:557 templates/js/translated/stock.js:725
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr ""
@@ -3717,8 +3745,8 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:940 templates/js/translated/order.js:1403
-#: templates/js/translated/order.js:1533
+#: templates/js/translated/order.js:1000 templates/js/translated/order.js:1491
+#: templates/js/translated/order.js:1621
msgid "Items"
msgstr "Przedmioty"
@@ -3752,9 +3780,9 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:27
-#: order/templates/order/purchase_order_detail.html:182
+#: order/templates/order/purchase_order_detail.html:166
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:245
+#: order/templates/order/sales_order_detail.html:233
msgid "Add Line Item"
msgstr "Dodaj element zamówienia"
@@ -3794,7 +3822,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:122
-#: templates/js/translated/order.js:1361
+#: templates/js/translated/order.js:1449
msgid "Customer Reference"
msgstr ""
@@ -3827,7 +3855,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:48
-#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1465
+#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1466
msgid "Actions"
msgstr "Akcje"
@@ -3902,31 +3930,31 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:499
+#: part/api.py:502
msgid "Valid"
msgstr ""
-#: part/api.py:500
+#: part/api.py:503
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:505
+#: part/api.py:508
msgid "This option must be selected"
msgstr ""
-#: part/api.py:847
+#: part/api.py:866
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:851
+#: part/api.py:870
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:866
+#: part/api.py:885
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:897 part/api.py:901 part/api.py:916 part/api.py:920
+#: part/api.py:916 part/api.py:920 part/api.py:935 part/api.py:939
msgid "This field is required"
msgstr ""
@@ -3944,7 +3972,7 @@ msgid "Available Stock"
msgstr "Dostępna ilość"
#: part/bom.py:128 part/templates/part/part_base.html:203
-#: templates/js/translated/part.js:1323
+#: templates/js/translated/part.js:1324
msgid "On Order"
msgstr ""
@@ -3976,7 +4004,7 @@ msgstr "Domyślne słowa kluczowe"
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:97 part/models.py:2571 part/templates/part/category.html:15
+#: part/models.py:97 part/models.py:2585 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -3993,7 +4021,7 @@ msgstr ""
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:37
-#: templates/js/translated/part.js:1685 templates/navbar.html:21
+#: templates/js/translated/part.js:1686 templates/navbar.html:21
#: templates/stats.html:92 templates/stats.html:101 users/models.py:41
msgid "Parts"
msgstr "Części"
@@ -4023,7 +4051,7 @@ msgstr ""
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:803 part/models.py:2624
+#: part/models.py:803 part/models.py:2638
msgid "Part name"
msgstr "Nazwa części"
@@ -4056,11 +4084,11 @@ msgstr "Słowa kluczowe"
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:841 part/models.py:2321 part/models.py:2570
+#: part/models.py:841 part/models.py:2335 part/models.py:2584
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:223
-#: templates/js/translated/part.js:1290
+#: templates/js/translated/part.js:1291
msgid "Category"
msgstr "Kategoria"
@@ -4069,8 +4097,8 @@ msgid "Part category"
msgstr ""
#: part/models.py:847 part/templates/part/part_base.html:274
-#: templates/js/translated/part.js:618 templates/js/translated/part.js:1243
-#: templates/js/translated/stock.js:1683
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:1244
+#: templates/js/translated/stock.js:1639
msgid "IPN"
msgstr "IPN"
@@ -4083,7 +4111,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:855 part/templates/part/part_base.html:281
-#: report/models.py:200 templates/js/translated/part.js:622
+#: report/models.py:200 templates/js/translated/part.js:623
msgid "Revision"
msgstr "Wersja"
@@ -4175,301 +4203,309 @@ msgstr ""
msgid "Sell multiple"
msgstr "Sprzedaj wiele"
-#: part/models.py:2371
+#: part/models.py:2385
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2388
+#: part/models.py:2402
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2408 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:1311
+#: part/models.py:2422 templates/js/translated/part.js:1737
+#: templates/js/translated/stock.js:1267
msgid "Test Name"
msgstr "Nazwa testu"
-#: part/models.py:2409
+#: part/models.py:2423
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2414
+#: part/models.py:2428
msgid "Test Description"
msgstr ""
-#: part/models.py:2415
+#: part/models.py:2429
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2420 templates/js/translated/part.js:1745
+#: part/models.py:2434 templates/js/translated/part.js:1746
#: templates/js/translated/table_filters.js:276
msgid "Required"
msgstr "Wymagane"
-#: part/models.py:2421
+#: part/models.py:2435
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2426 templates/js/translated/part.js:1753
+#: part/models.py:2440 templates/js/translated/part.js:1754
msgid "Requires Value"
msgstr ""
-#: part/models.py:2427
+#: part/models.py:2441
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2432 templates/js/translated/part.js:1760
+#: part/models.py:2446 templates/js/translated/part.js:1761
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2433
+#: part/models.py:2447
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2444
+#: part/models.py:2458
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2480
+#: part/models.py:2494
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2488
+#: part/models.py:2502
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2495
+#: part/models.py:2509
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2525
+#: part/models.py:2539
msgid "Parent Part"
msgstr "Część nadrzędna"
-#: part/models.py:2527 part/models.py:2576 part/models.py:2577
+#: part/models.py:2541 part/models.py:2590 part/models.py:2591
#: templates/InvenTree/settings/settings.html:218
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2529
+#: part/models.py:2543
msgid "Data"
msgstr "Dane"
-#: part/models.py:2529
+#: part/models.py:2543
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2581 templates/InvenTree/settings/settings.html:227
+#: part/models.py:2595 templates/InvenTree/settings/settings.html:227
msgid "Default Value"
msgstr "Wartość domyślna"
-#: part/models.py:2582
+#: part/models.py:2596
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2616
+#: part/models.py:2630
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2619 templates/js/translated/model_renderers.js:182
+#: part/models.py:2633 templates/js/translated/model_renderers.js:182
msgid "Part ID"
msgstr ""
-#: part/models.py:2620
+#: part/models.py:2634
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2623
+#: part/models.py:2637
msgid "Part Name"
msgstr ""
-#: part/models.py:2627
+#: part/models.py:2641
msgid "Part IPN"
msgstr ""
-#: part/models.py:2628
+#: part/models.py:2642
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2645
msgid "Level"
msgstr ""
-#: part/models.py:2632
+#: part/models.py:2646
msgid "BOM level"
msgstr ""
-#: part/models.py:2692
+#: part/models.py:2707
msgid "Select parent part"
msgstr "Wybierz część nadrzędną"
-#: part/models.py:2700
+#: part/models.py:2715
msgid "Sub part"
msgstr "Podczęść"
-#: part/models.py:2701
+#: part/models.py:2716
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2707
+#: part/models.py:2722
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2709 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:791 templates/js/translated/bom.js:865
+#: part/models.py:2724 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2709
+#: part/models.py:2724
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2712 part/templates/part/upload_bom.html:55
+#: part/models.py:2727 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2713
+#: part/models.py:2728
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2716
+#: part/models.py:2731
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2719
+#: part/models.py:2734
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2721
+#: part/models.py:2736
msgid "Checksum"
msgstr "Suma kontrolna"
-#: part/models.py:2721
+#: part/models.py:2736
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2725 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:882
+#: part/models.py:2740 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:880
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2726
+#: part/models.py:2741
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2731 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:874
+#: part/models.py:2746 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:872
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2732
+#: part/models.py:2747
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2817 stock/models.py:394
+#: part/models.py:2832 stock/models.py:446
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2826 part/models.py:2828
+#: part/models.py:2841 part/models.py:2843
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2957
+#: part/models.py:2972
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2979
+#: part/models.py:2994
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2991
+#: part/models.py:3006
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2999
+#: part/models.py:3014
msgid "Substitute part"
msgstr ""
-#: part/models.py:3010
+#: part/models.py:3025
msgid "Part 1"
msgstr "Część 1"
-#: part/models.py:3014
+#: part/models.py:3029
msgid "Part 2"
msgstr "Część 2"
-#: part/models.py:3014
+#: part/models.py:3029
msgid "Select Related Part"
msgstr "Wybierz powiązaną część"
-#: part/models.py:3046
+#: part/models.py:3061
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
-#: part/serializers.py:667
+#: part/serializers.py:670
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:678
+#: part/serializers.py:681
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:679
+#: part/serializers.py:682
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:684
+#: part/serializers.py:687
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:685
+#: part/serializers.py:688
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:690
+#: part/serializers.py:693
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:691
+#: part/serializers.py:694
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:699
+msgid "Copy Substitute Parts"
+msgstr ""
+
+#: part/serializers.py:700
+msgid "Copy substitute parts when duplicate BOM items"
+msgstr ""
+
+#: part/serializers.py:744
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:735
+#: part/serializers.py:745
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:762
+#: part/serializers.py:772
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:805
+#: part/serializers.py:815
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:808
+#: part/serializers.py:818
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:811
+#: part/serializers.py:821
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:820
+#: part/serializers.py:830
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:828
+#: part/serializers.py:838
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:847
+#: part/serializers.py:857
msgid "At least one BOM item is required"
msgstr ""
@@ -4496,7 +4532,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:279
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:274
msgid "BOM actions"
msgstr ""
@@ -4548,7 +4584,7 @@ msgstr ""
msgid "Top level part category"
msgstr ""
-#: part/templates/part/category.html:114 part/templates/part/category.html:205
+#: part/templates/part/category.html:114 part/templates/part/category.html:202
#: part/templates/part/category_sidebar.html:7
msgid "Subcategories"
msgstr ""
@@ -4557,55 +4593,51 @@ msgstr ""
msgid "Parts (Including subcategories)"
msgstr ""
-#: part/templates/part/category.html:156
-msgid "Export Part Data"
-msgstr ""
-
-#: part/templates/part/category.html:157 part/templates/part/category.html:181
-msgid "Export"
-msgstr "Eksportuj"
-
-#: part/templates/part/category.html:160
+#: part/templates/part/category.html:157
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:161 templates/js/translated/bom.js:365
+#: part/templates/part/category.html:158 templates/js/translated/bom.js:365
msgid "New Part"
msgstr "Nowy komponent"
-#: part/templates/part/category.html:175
+#: part/templates/part/category.html:172
msgid "Set category"
msgstr "Ustaw kategorię"
-#: part/templates/part/category.html:175
+#: part/templates/part/category.html:172
msgid "Set Category"
msgstr "Ustaw kategorię"
-#: part/templates/part/category.html:179
+#: part/templates/part/category.html:176
msgid "Print Labels"
msgstr ""
-#: part/templates/part/category.html:181
+#: part/templates/part/category.html:178
+msgid "Export"
+msgstr "Eksportuj"
+
+#: part/templates/part/category.html:178
msgid "Export Data"
msgstr "Eksportuj dane"
-#: part/templates/part/category.html:195
+#: part/templates/part/category.html:192
msgid "Part Parameters"
msgstr "Parametry części"
-#: part/templates/part/category.html:288
+#: part/templates/part/category.html:285
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:315
+#: part/templates/part/category.html:305
msgid "Create Part"
msgstr ""
-#: part/templates/part/category.html:318
+#: part/templates/part/category.html:308
msgid "Create another part after this one"
msgstr ""
-#: part/templates/part/category.html:319
+#: part/templates/part/category.html:309
msgid "Part created successfully"
msgstr ""
@@ -4676,155 +4708,150 @@ msgstr ""
msgid "Part Stock"
msgstr "Zapasy części"
-#: part/templates/part/detail.html:33
-#, python-format
-msgid "Showing stock for all variants of %(full_name)s"
-msgstr ""
-
-#: part/templates/part/detail.html:43
+#: part/templates/part/detail.html:38
msgid "Part Stock Allocations"
msgstr ""
-#: part/templates/part/detail.html:60
+#: part/templates/part/detail.html:55
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:65
+#: part/templates/part/detail.html:60
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:122
+#: part/templates/part/detail.html:117
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:168
+#: part/templates/part/detail.html:163
msgid "Part Variants"
msgstr "Warianty Części"
-#: part/templates/part/detail.html:172
+#: part/templates/part/detail.html:167
msgid "Create new variant"
msgstr "Utwórz nowy wariant"
-#: part/templates/part/detail.html:173
+#: part/templates/part/detail.html:168
msgid "New Variant"
msgstr "Nowy wariant"
-#: part/templates/part/detail.html:200
+#: part/templates/part/detail.html:195
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:237 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:52
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:241 part/templates/part/detail.html:242
+#: part/templates/part/detail.html:236 part/templates/part/detail.html:237
msgid "Add Related"
msgstr "Dodaj powiązane"
-#: part/templates/part/detail.html:262 part/templates/part/part_sidebar.html:18
+#: part/templates/part/detail.html:257 part/templates/part/part_sidebar.html:18
msgid "Bill of Materials"
msgstr "Zestawienie materiałowe"
-#: part/templates/part/detail.html:267
+#: part/templates/part/detail.html:262
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:271 templates/js/translated/bom.js:283
+#: part/templates/part/detail.html:266 templates/js/translated/bom.js:283
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:268
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:283
+#: part/templates/part/detail.html:278
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:285 templates/js/translated/part.js:272
+#: part/templates/part/detail.html:279 templates/js/translated/part.js:272
msgid "Copy BOM"
msgstr "Kopiuj BOM"
-#: part/templates/part/detail.html:287
+#: part/templates/part/detail.html:280
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:285
msgid "New BOM Item"
msgstr ""
-#: part/templates/part/detail.html:293
+#: part/templates/part/detail.html:286
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:306
+#: part/templates/part/detail.html:299
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:323
+#: part/templates/part/detail.html:316
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:348
+#: part/templates/part/detail.html:341
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:363
+#: part/templates/part/detail.html:356
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:391
+#: part/templates/part/detail.html:384
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:407
+#: part/templates/part/detail.html:400
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:589
+#: part/templates/part/detail.html:582
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:590
+#: part/templates/part/detail.html:583
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:639
+#: part/templates/part/detail.html:632
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:696
+#: part/templates/part/detail.html:689
msgid "Related Part"
msgstr "Powiązane części"
-#: part/templates/part/detail.html:704
+#: part/templates/part/detail.html:697
msgid "Add Related Part"
msgstr "Dodaj powiązaną część"
-#: part/templates/part/detail.html:801
+#: part/templates/part/detail.html:794
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:858
+#: part/templates/part/detail.html:844
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:971
+#: part/templates/part/detail.html:957
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:983
+#: part/templates/part/detail.html:969
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:995
+#: part/templates/part/detail.html:981
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1084
+#: part/templates/part/detail.html:1070
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4969,7 +4996,7 @@ msgstr "Część jest wirtualna (nie fizyczna)"
#: templates/js/translated/company.js:508
#: templates/js/translated/company.js:765
#: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:533 templates/js/translated/part.js:610
+#: templates/js/translated/part.js:534 templates/js/translated/part.js:611
msgid "Inactive"
msgstr "Nieaktywny"
@@ -4983,7 +5010,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2356
+#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2444
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5000,12 +5027,12 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:903
+#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:901
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1154
-#: templates/js/translated/part.js:1327
+#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1155
+#: templates/js/translated/part.js:1328
msgid "Building"
msgstr ""
@@ -5057,7 +5084,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:857
+#: templates/js/translated/bom.js:855
msgid "No supplier pricing available"
msgstr ""
@@ -5177,7 +5204,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:851
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849
msgid "Supplier Cost"
msgstr ""
@@ -5199,7 +5226,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1390
+#: part/templates/part/prices.html:215 part/views.py:1325
msgid "Add Internal Price Break"
msgstr ""
@@ -5219,9 +5246,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813
-#: templates/js/translated/part.js:497 templates/js/translated/part.js:1144
-#: templates/js/translated/part.js:1331
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811
+#: templates/js/translated/part.js:498 templates/js/translated/part.js:1145
+#: templates/js/translated/part.js:1332
msgid "No Stock"
msgstr "Brak w magazynie"
@@ -5275,100 +5302,100 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:172
+#: part/templatetags/inventree_extras.py:174
msgid "Unknown database"
msgstr ""
-#: part/views.py:90
+#: part/views.py:88
msgid "Set Part Category"
msgstr ""
-#: part/views.py:140
+#: part/views.py:138
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:212
+#: part/views.py:210
msgid "Match References"
msgstr ""
-#: part/views.py:509
+#: part/views.py:507
msgid "None"
msgstr ""
-#: part/views.py:568
+#: part/views.py:566
msgid "Part QR Code"
msgstr ""
-#: part/views.py:670
+#: part/views.py:668
msgid "Select Part Image"
msgstr ""
-#: part/views.py:696
+#: part/views.py:694
msgid "Updated part image"
msgstr ""
-#: part/views.py:699
+#: part/views.py:697
msgid "Part image not found"
msgstr ""
-#: part/views.py:850
+#: part/views.py:785
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:857
+#: part/views.py:792
msgid "Part was deleted"
msgstr ""
-#: part/views.py:866
+#: part/views.py:801
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1015
+#: part/views.py:950
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1025
+#: part/views.py:960
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1032
+#: part/views.py:967
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1091 templates/js/translated/part.js:315
+#: part/views.py:1026 templates/js/translated/part.js:315
msgid "Edit Part Category"
msgstr "Edytuj kategorię części"
-#: part/views.py:1129
+#: part/views.py:1064
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1135
+#: part/views.py:1070
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1144
+#: part/views.py:1079
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1245
+#: part/views.py:1180
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1301
+#: part/views.py:1236
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1323
+#: part/views.py:1258
msgid "Added new price break"
msgstr ""
-#: part/views.py:1399
+#: part/views.py:1334
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1407
+#: part/views.py:1342
msgid "Delete Internal Price Break"
msgstr ""
@@ -5574,12 +5601,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:556 stock/templates/stock/item_base.html:151
-#: templates/js/translated/build.js:373 templates/js/translated/build.js:521
-#: templates/js/translated/build.js:919 templates/js/translated/build.js:1295
+#: stock/models.py:608 stock/templates/stock/item_base.html:151
+#: templates/js/translated/build.js:374 templates/js/translated/build.js:522
+#: templates/js/translated/build.js:920 templates/js/translated/build.js:1296
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:99 templates/js/translated/order.js:2062
-#: templates/js/translated/order.js:2151 templates/js/translated/stock.js:423
+#: templates/js/translated/order.js:99 templates/js/translated/order.js:2150
+#: templates/js/translated/order.js:2239 templates/js/translated/stock.js:422
msgid "Serial Number"
msgstr "Numer Seryjny"
@@ -5588,19 +5615,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:2052
+#: stock/models.py:2104
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:2058
+#: stock/models.py:2110
msgid "Result"
msgstr "Wynik"
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:50
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:924 templates/js/translated/stock.js:2657
+#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2613
msgid "Date"
msgstr "Data"
@@ -5618,26 +5645,26 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756
-#: templates/js/translated/stock.js:2910
+#: templates/js/translated/stock.js:542 templates/js/translated/stock.js:712
+#: templates/js/translated/stock.js:2866
msgid "Serial"
msgstr ""
-#: stock/api.py:501
+#: stock/api.py:503
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:508
+#: stock/api.py:510
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:533
+#: stock/api.py:535
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/forms.py:74 stock/forms.py:198 stock/models.py:613
+#: stock/forms.py:74 stock/forms.py:198 stock/models.py:665
#: stock/templates/stock/item_base.html:188
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1791
msgid "Expiry Date"
msgstr "Data ważności"
@@ -5677,228 +5704,228 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:62 stock/models.py:650
+#: stock/models.py:62 stock/models.py:702
#: stock/templates/stock/item_base.html:402
msgid "Owner"
msgstr ""
-#: stock/models.py:63 stock/models.py:651
+#: stock/models.py:63 stock/models.py:703
msgid "Select Owner"
msgstr ""
-#: stock/models.py:375
+#: stock/models.py:427
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:463
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:421 stock/models.py:430
+#: stock/models.py:473 stock/models.py:482
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:422
+#: stock/models.py:474
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:444
+#: stock/models.py:496
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:450
+#: stock/models.py:502
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:457
+#: stock/models.py:509
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:500
+#: stock/models.py:552
msgid "Parent Stock Item"
msgstr "Nadrzędny towar"
-#: stock/models.py:509
+#: stock/models.py:561
msgid "Base part"
msgstr "Część podstawowa"
-#: stock/models.py:517
+#: stock/models.py:569
msgid "Select a matching supplier part for this stock item"
msgstr "Wybierz pasującą część dostawcy dla tego towaru"
-#: stock/models.py:523 stock/templates/stock/location.html:16
+#: stock/models.py:575 stock/templates/stock/location.html:16
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:526
+#: stock/models.py:578
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:585
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:539 stock/templates/stock/item_base.html:277
+#: stock/models.py:591 stock/templates/stock/item_base.html:277
msgid "Installed In"
msgstr ""
-#: stock/models.py:542
+#: stock/models.py:594
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:558
+#: stock/models.py:610
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:572
+#: stock/models.py:624
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:576
+#: stock/models.py:628
msgid "Stock Quantity"
msgstr "Ilość w magazynie"
-#: stock/models.py:585
+#: stock/models.py:637
msgid "Source Build"
msgstr ""
-#: stock/models.py:587
+#: stock/models.py:639
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:598
+#: stock/models.py:650
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:601
+#: stock/models.py:653
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:607
+#: stock/models.py:659
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:614
+#: stock/models.py:666
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:627
+#: stock/models.py:679
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:627
+#: stock/models.py:679
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:637 stock/templates/stock/item.html:121
+#: stock/models.py:689 stock/templates/stock/item.html:121
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:646
+#: stock/models.py:698
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1171
+#: stock/models.py:1223
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1177
+#: stock/models.py:1229
msgid "Quantity must be integer"
msgstr "Ilość musi być liczbą całkowitą"
-#: stock/models.py:1183
+#: stock/models.py:1235
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr "Ilość nie może przekraczać dostępnej ilości towaru ({n})"
-#: stock/models.py:1186
+#: stock/models.py:1238
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1189
+#: stock/models.py:1241
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1196
+#: stock/models.py:1248
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1267
+#: stock/models.py:1319
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1270
+#: stock/models.py:1322
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1273
+#: stock/models.py:1325
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1276
+#: stock/models.py:1328
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1279
+#: stock/models.py:1331
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1282
+#: stock/models.py:1334
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1289 stock/serializers.py:832
+#: stock/models.py:1341 stock/serializers.py:832
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1293
+#: stock/models.py:1345
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1297
+#: stock/models.py:1349
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1301
+#: stock/models.py:1353
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1473
+#: stock/models.py:1525
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1972
+#: stock/models.py:2024
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2029
+#: stock/models.py:2081
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2035
+#: stock/models.py:2087
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2053
+#: stock/models.py:2105
msgid "Test name"
msgstr ""
-#: stock/models.py:2059
+#: stock/models.py:2111
msgid "Test result"
msgstr ""
-#: stock/models.py:2065
+#: stock/models.py:2117
msgid "Test output value"
msgstr ""
-#: stock/models.py:2072
+#: stock/models.py:2124
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2078
+#: stock/models.py:2130
msgid "Test notes"
msgstr ""
@@ -5935,7 +5962,7 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:363 stock/views.py:1127
+#: stock/serializers.py:363 stock/views.py:1009
msgid "Serial numbers already exist"
msgstr "Numer seryjny już istnieje"
@@ -6052,11 +6079,11 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:147 templates/js/translated/stock.js:3019
+#: stock/templates/stock/item.html:147 templates/js/translated/stock.js:2975
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1479
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1435
msgid "Add Test Result"
msgstr ""
@@ -6070,7 +6097,7 @@ msgstr ""
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:46 templates/stock_table.html:24
+#: stock/templates/stock/item_base.html:46 templates/stock_table.html:21
msgid "Scan to Location"
msgstr ""
@@ -6083,15 +6110,15 @@ msgid "Stock adjustment actions"
msgstr ""
#: stock/templates/stock/item_base.html:69
-#: stock/templates/stock/location.html:52 templates/stock_table.html:50
+#: stock/templates/stock/location.html:52 templates/stock_table.html:47
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48
+#: stock/templates/stock/item_base.html:72 templates/stock_table.html:45
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49
+#: stock/templates/stock/item_base.html:75 templates/stock_table.html:46
msgid "Remove stock"
msgstr ""
@@ -6100,11 +6127,11 @@ msgid "Serialize stock"
msgstr ""
#: stock/templates/stock/item_base.html:82
-#: stock/templates/stock/location.html:58 templates/stock_table.html:51
+#: stock/templates/stock/location.html:58 templates/stock_table.html:48
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85 templates/stock_table.html:54
+#: stock/templates/stock/item_base.html:85 templates/stock_table.html:51
msgid "Assign to customer"
msgstr ""
@@ -6181,7 +6208,7 @@ msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:201
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1807
msgid "Last Updated"
msgstr "Ostatnia aktualizacja"
@@ -6218,7 +6245,7 @@ msgid "This stock item is serialized - it has a unique serial number and the qua
msgstr ""
#: stock/templates/stock/item_base.html:296
-#: templates/js/translated/build.js:1317
+#: templates/js/translated/build.js:1318
msgid "No location set"
msgstr "Lokacje nie są ustawione"
@@ -6320,11 +6347,11 @@ msgstr ""
msgid "Stock Locations"
msgstr ""
-#: stock/templates/stock/location.html:185 templates/stock_table.html:30
+#: stock/templates/stock/location.html:185 templates/stock_table.html:27
msgid "Printing Actions"
msgstr ""
-#: stock/templates/stock/location.html:189 templates/stock_table.html:34
+#: stock/templates/stock/location.html:189 templates/stock_table.html:31
msgid "Print labels"
msgstr "Drukuj etykiety"
@@ -6348,7 +6375,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:749
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:631
msgid "Convert Stock Item"
msgstr ""
@@ -6369,95 +6396,95 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181 templates/js/translated/stock.js:139
+#: stock/views.py:152 templates/js/translated/stock.js:138
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:728 stock/views.py:854 stock/views.py:1136
+#: stock/views.py:259 stock/views.py:610 stock/views.py:736 stock/views.py:1018
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:274
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:293
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:302
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:342
+#: stock/views.py:313
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:353
+#: stock/views.py:324
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:370
+#: stock/views.py:341
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:371
+#: stock/views.py:342
msgid "Check the confirmation box"
msgstr ""
-#: stock/views.py:475
+#: stock/views.py:357
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:500
+#: stock/views.py:382
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:597 templates/js/translated/stock.js:1074
+#: stock/views.py:479 templates/js/translated/stock.js:1030
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:608
+#: stock/views.py:490
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:630 templates/js/translated/stock.js:332
+#: stock/views.py:512 templates/js/translated/stock.js:331
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:780
+#: stock/views.py:662
msgid "Create new Stock Location"
msgstr "Utwórz nową lokalizację magazynową"
-#: stock/views.py:881
+#: stock/views.py:763
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1023 templates/js/translated/stock.js:312
+#: stock/views.py:905 templates/js/translated/stock.js:311
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1105
+#: stock/views.py:987
msgid "Quantity cannot be negative"
msgstr "Ilość nie może być ujemna"
-#: stock/views.py:1205
+#: stock/views.py:1087
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1218
+#: stock/views.py:1100
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1229
+#: stock/views.py:1111
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1236
+#: stock/views.py:1118
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1245
+#: stock/views.py:1127
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -7381,14 +7408,14 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1335
+#: templates/js/translated/bom.js:1340
msgid "Required Quantity"
msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:804 templates/js/translated/build.js:1411
-#: templates/js/translated/build.js:2057
+#: templates/js/translated/bom.js:802 templates/js/translated/build.js:1412
+#: templates/js/translated/build.js:2110
#: templates/js/translated/table_filters.js:178
msgid "Available"
msgstr "Dostępne"
@@ -7580,7 +7607,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:982
msgid "Remove stock item"
msgstr ""
@@ -7635,12 +7662,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286
-#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518
+#: templates/js/translated/order.js:429 templates/js/translated/tables.js:53
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519
+#: templates/js/translated/order.js:430
msgid "Select file format"
msgstr ""
@@ -7716,275 +7743,307 @@ msgstr ""
msgid "Edit BOM Item Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:741
+#: templates/js/translated/bom.js:739
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:745 templates/js/translated/build.js:1393
+#: templates/js/translated/bom.js:743 templates/js/translated/build.js:1394
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:750
+#: templates/js/translated/bom.js:748
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:822
+#: templates/js/translated/bom.js:820
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:837
+#: templates/js/translated/bom.js:835
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:844
+#: templates/js/translated/bom.js:842
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:893 templates/js/translated/bom.js:982
+#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:953
+#: templates/js/translated/bom.js:951
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:955
+#: templates/js/translated/bom.js:953
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:957
+#: templates/js/translated/bom.js:955
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138
+#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:961 templates/js/translated/bom.js:1121
+#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1060 templates/js/translated/build.js:1137
+#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1138
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1116
+#: templates/js/translated/bom.js:1121
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:1318 templates/js/translated/build.js:1377
+#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1378
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1340
+#: templates/js/translated/bom.js:1345
msgid "Inherited from parent BOM"
msgstr ""
-#: templates/js/translated/build.js:85
+#: templates/js/translated/build.js:86
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:119
+#: templates/js/translated/build.js:120
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:140
+#: templates/js/translated/build.js:141
msgid "Build order is ready to be completed"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:146
msgid "Build Order is incomplete"
msgstr ""
-#: templates/js/translated/build.js:173
+#: templates/js/translated/build.js:174
msgid "Complete Build Order"
msgstr ""
-#: templates/js/translated/build.js:214 templates/js/translated/stock.js:92
-#: templates/js/translated/stock.js:181
+#: templates/js/translated/build.js:215 templates/js/translated/stock.js:91
+#: templates/js/translated/stock.js:180
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:216 templates/js/translated/stock.js:94
-#: templates/js/translated/stock.js:183
+#: templates/js/translated/build.js:217 templates/js/translated/stock.js:93
+#: templates/js/translated/stock.js:182
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/build.js:225
+#: templates/js/translated/build.js:226
msgid "The Bill of Materials contains trackable parts"
msgstr ""
-#: templates/js/translated/build.js:226
+#: templates/js/translated/build.js:227
msgid "Build outputs must be generated individually"
msgstr ""
-#: templates/js/translated/build.js:234
+#: templates/js/translated/build.js:235
msgid "Trackable parts can have serial numbers specified"
msgstr ""
-#: templates/js/translated/build.js:235
+#: templates/js/translated/build.js:236
msgid "Enter serial numbers to generate multiple single build outputs"
msgstr ""
-#: templates/js/translated/build.js:242
+#: templates/js/translated/build.js:243
msgid "Create Build Output"
msgstr "Utwórz zlecenie budowy"
-#: templates/js/translated/build.js:273
+#: templates/js/translated/build.js:274
msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:284
+#: templates/js/translated/build.js:285
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:293
+#: templates/js/translated/build.js:294
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:301
+#: templates/js/translated/build.js:302
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:324
+#: templates/js/translated/build.js:325
msgid "Are you sure you wish to unallocate stock items from this build?"
msgstr ""
-#: templates/js/translated/build.js:342
+#: templates/js/translated/build.js:343
msgid "Unallocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:360 templates/js/translated/build.js:508
+#: templates/js/translated/build.js:361 templates/js/translated/build.js:509
msgid "Select Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:361 templates/js/translated/build.js:509
+#: templates/js/translated/build.js:362 templates/js/translated/build.js:510
msgid "At least one build output must be selected"
msgstr ""
-#: templates/js/translated/build.js:415 templates/js/translated/build.js:563
+#: templates/js/translated/build.js:416 templates/js/translated/build.js:564
msgid "Output"
msgstr ""
-#: templates/js/translated/build.js:431
+#: templates/js/translated/build.js:432
msgid "Complete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:576
+#: templates/js/translated/build.js:577
msgid "Delete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:665
+#: templates/js/translated/build.js:666
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:703 templates/js/translated/order.js:1965
+#: templates/js/translated/build.js:704 templates/js/translated/order.js:2053
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:885
+#: templates/js/translated/build.js:886
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1334 templates/js/translated/build.js:2068
-#: templates/js/translated/order.js:2099
+#: templates/js/translated/build.js:1335 templates/js/translated/build.js:2121
+#: templates/js/translated/order.js:2187
msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1336 templates/js/translated/build.js:2069
-#: templates/js/translated/order.js:2100
+#: templates/js/translated/build.js:1337 templates/js/translated/build.js:2122
+#: templates/js/translated/order.js:2188
msgid "Delete stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1354
+#: templates/js/translated/build.js:1355
msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:1364
+#: templates/js/translated/build.js:1365
msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:1389
+#: templates/js/translated/build.js:1390
msgid "Substitute parts available"
msgstr ""
-#: templates/js/translated/build.js:1406
+#: templates/js/translated/build.js:1407
msgid "Quantity Per"
msgstr "Ilość za"
-#: templates/js/translated/build.js:1416 templates/js/translated/build.js:1656
-#: templates/js/translated/build.js:2064 templates/js/translated/order.js:2366
+#: templates/js/translated/build.js:1417 templates/js/translated/build.js:1667
+#: templates/js/translated/build.js:2117 templates/js/translated/order.js:2454
msgid "Allocated"
msgstr "Przydzielono"
-#: templates/js/translated/build.js:1472 templates/js/translated/order.js:2446
+#: templates/js/translated/build.js:1473 templates/js/translated/order.js:2534
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:1476 templates/stock_table.html:53
+#: templates/js/translated/build.js:1477 templates/stock_table.html:50
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1479 templates/js/translated/order.js:2439
+#: templates/js/translated/build.js:1480 templates/js/translated/order.js:2527
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:1558 templates/js/translated/order.js:1616
-msgid "Specify stock allocation quantity"
-msgstr ""
-
-#: templates/js/translated/build.js:1629 templates/js/translated/label.js:134
-#: templates/js/translated/order.js:1667 templates/js/translated/report.js:225
+#: templates/js/translated/build.js:1519 templates/js/translated/label.js:134
+#: templates/js/translated/order.js:1755 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1630 templates/js/translated/order.js:1668
+#: templates/js/translated/build.js:1520 templates/js/translated/order.js:1756
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:1644 templates/js/translated/order.js:1682
+#: templates/js/translated/build.js:1569 templates/js/translated/order.js:1704
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:1640
+msgid "All Parts Allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:1641
+msgid "All selected parts have been fully allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:1655 templates/js/translated/order.js:1770
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1717
+#: templates/js/translated/build.js:1684 templates/js/translated/order.js:1805
msgid "Confirm stock allocation"
msgstr "Potwierdź przydział zapasów"
-#: templates/js/translated/build.js:1674
+#: templates/js/translated/build.js:1685
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1730
+#: templates/js/translated/build.js:1696 templates/js/translated/order.js:1818
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1757 templates/js/translated/order.js:1807
+#: templates/js/translated/build.js:1768 templates/js/translated/order.js:1895
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1875
+#: templates/js/translated/build.js:1865
+msgid "Automatic Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1866
+msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
+msgstr ""
+
+#: templates/js/translated/build.js:1868
+msgid "If a location is specifed, stock will only be allocated from that location"
+msgstr ""
+
+#: templates/js/translated/build.js:1869
+msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
+msgstr ""
+
+#: templates/js/translated/build.js:1870
+msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
+msgstr ""
+
+#: templates/js/translated/build.js:1890
+msgid "Allocate Stock Items"
+msgstr ""
+
+#: templates/js/translated/build.js:1928
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1892 templates/js/translated/part.js:1235
-#: templates/js/translated/part.js:1646 templates/js/translated/stock.js:1643
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/build.js:1945 templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1647 templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:2567
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1912
+#: templates/js/translated/build.js:1965
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1976 templates/js/translated/stock.js:2823
+#: templates/js/translated/build.js:2029 templates/js/translated/stock.js:2779
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1988
+#: templates/js/translated/build.js:2041
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:2045
+#: templates/js/translated/build.js:2098
msgid "No parts allocated for"
msgstr ""
@@ -8049,34 +8108,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:517
-#: templates/js/translated/part.js:602
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:518
+#: templates/js/translated/part.js:603
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:521
-#: templates/js/translated/part.js:606
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:522
+#: templates/js/translated/part.js:607
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:696
+#: templates/js/translated/company.js:631 templates/js/translated/part.js:697
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:738
+#: templates/js/translated/company.js:668 templates/js/translated/part.js:739
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:739
+#: templates/js/translated/company.js:669 templates/js/translated/part.js:740
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:756
+#: templates/js/translated/company.js:688 templates/js/translated/part.js:757
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:768
+#: templates/js/translated/company.js:699 templates/js/translated/part.js:769
msgid "Delete Parameter"
msgstr ""
@@ -8085,12 +8144,12 @@ msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:429
+#: templates/js/translated/filters.js:441
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:430
+#: templates/js/translated/filters.js:442
msgid "false"
msgstr ""
@@ -8098,19 +8157,23 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:286
+#: templates/js/translated/filters.js:288
+msgid "Download data"
+msgstr ""
+
+#: templates/js/translated/filters.js:291
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:290
+#: templates/js/translated/filters.js:295
msgid "Add new filter"
msgstr "Dodaj nowy filtr"
-#: templates/js/translated/filters.js:293
+#: templates/js/translated/filters.js:298
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:338
+#: templates/js/translated/filters.js:350
msgid "Create filter"
msgstr ""
@@ -8181,7 +8244,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1050
+#: templates/js/translated/stock.js:1006
msgid "Select Stock Items"
msgstr ""
@@ -8354,206 +8417,214 @@ msgstr ""
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:366
+#: templates/js/translated/order.js:426
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:460
+#: templates/js/translated/order.js:520
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:461
+#: templates/js/translated/order.js:521
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:481 templates/js/translated/order.js:580
+#: templates/js/translated/order.js:541 templates/js/translated/order.js:640
msgid "Add batch code"
msgstr ""
-#: templates/js/translated/order.js:487 templates/js/translated/order.js:591
+#: templates/js/translated/order.js:547 templates/js/translated/order.js:651
msgid "Add serial numbers"
msgstr ""
-#: templates/js/translated/order.js:499
+#: templates/js/translated/order.js:559
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:563 templates/js/translated/stock.js:2263
+#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2219
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:652
+#: templates/js/translated/order.js:712
msgid "Order Code"
msgstr "Kod zamówienia"
-#: templates/js/translated/order.js:653
+#: templates/js/translated/order.js:713
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:655
+#: templates/js/translated/order.js:715
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/order.js:674
+#: templates/js/translated/order.js:734
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:675
+#: templates/js/translated/order.js:735
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:865 templates/js/translated/part.js:809
+#: templates/js/translated/order.js:925 templates/js/translated/part.js:810
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:890 templates/js/translated/order.js:1338
+#: templates/js/translated/order.js:950 templates/js/translated/order.js:1426
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:1018 templates/js/translated/order.js:2496
+#: templates/js/translated/order.js:1074 templates/js/translated/order.js:2585
+msgid "Duplicate Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:1104 templates/js/translated/order.js:2607
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1030 templates/js/translated/order.js:2507
+#: templates/js/translated/order.js:1117 templates/js/translated/order.js:2618
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:1073
+#: templates/js/translated/order.js:1160
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:1100 templates/js/translated/order.js:2255
+#: templates/js/translated/order.js:1187 templates/js/translated/order.js:2343
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:1154 templates/js/translated/order.js:2280
-#: templates/js/translated/part.js:1863 templates/js/translated/part.js:2074
+#: templates/js/translated/order.js:1241 templates/js/translated/order.js:2368
+#: templates/js/translated/part.js:1864 templates/js/translated/part.js:2075
msgid "Unit Price"
msgstr "Cena jednostkowa"
-#: templates/js/translated/order.js:1169 templates/js/translated/order.js:2296
+#: templates/js/translated/order.js:1256 templates/js/translated/order.js:2384
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:1210 templates/js/translated/order.js:2338
-#: templates/js/translated/part.js:918
+#: templates/js/translated/order.js:1297 templates/js/translated/order.js:2426
+#: templates/js/translated/part.js:919
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:1269 templates/js/translated/part.js:964
+#: templates/js/translated/order.js:1356 templates/js/translated/part.js:965
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1273 templates/js/translated/order.js:2452
+#: templates/js/translated/order.js:1360 templates/js/translated/order.js:2540
+msgid "Duplicate line item"
+msgstr ""
+
+#: templates/js/translated/order.js:1361 templates/js/translated/order.js:2541
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:1274 templates/js/translated/order.js:2456
+#: templates/js/translated/order.js:1362 templates/js/translated/order.js:2545
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1314
+#: templates/js/translated/order.js:1402
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1352
+#: templates/js/translated/order.js:1440
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1439
+#: templates/js/translated/order.js:1527
msgid "Edit shipment"
msgstr ""
-#: templates/js/translated/order.js:1442
+#: templates/js/translated/order.js:1530
msgid "Complete shipment"
msgstr ""
-#: templates/js/translated/order.js:1447
+#: templates/js/translated/order.js:1535
msgid "Delete shipment"
msgstr ""
-#: templates/js/translated/order.js:1467
+#: templates/js/translated/order.js:1555
msgid "Edit Shipment"
msgstr ""
-#: templates/js/translated/order.js:1484
+#: templates/js/translated/order.js:1572
msgid "Delete Shipment"
msgstr ""
-#: templates/js/translated/order.js:1518
+#: templates/js/translated/order.js:1606
msgid "No matching shipments found"
msgstr ""
-#: templates/js/translated/order.js:1528
+#: templates/js/translated/order.js:1616
msgid "Shipment Reference"
msgstr ""
-#: templates/js/translated/order.js:1552
+#: templates/js/translated/order.js:1640
msgid "Not shipped"
msgstr ""
-#: templates/js/translated/order.js:1558
+#: templates/js/translated/order.js:1646
msgid "Tracking"
msgstr ""
-#: templates/js/translated/order.js:1718
+#: templates/js/translated/order.js:1806
msgid "Allocate Stock Items to Sales Order"
msgstr ""
-#: templates/js/translated/order.js:1926
+#: templates/js/translated/order.js:2014
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:2015
+#: templates/js/translated/order.js:2103
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:2032
+#: templates/js/translated/order.js:2120
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:2033
+#: templates/js/translated/order.js:2121
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:2076 templates/js/translated/order.js:2165
-#: templates/js/translated/stock.js:1559
+#: templates/js/translated/order.js:2164 templates/js/translated/order.js:2253
+#: templates/js/translated/stock.js:1515
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/order.js:2084 templates/js/translated/order.js:2174
+#: templates/js/translated/order.js:2172 templates/js/translated/order.js:2262
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:2436
+#: templates/js/translated/order.js:2524
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:2442
+#: templates/js/translated/order.js:2530
msgid "Purchase stock"
msgstr "Cena zakupu"
-#: templates/js/translated/order.js:2449 templates/js/translated/order.js:2616
+#: templates/js/translated/order.js:2537 templates/js/translated/order.js:2727
msgid "Calculate price"
msgstr "Oblicz cenę"
-#: templates/js/translated/order.js:2460
+#: templates/js/translated/order.js:2549
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:2463
+#: templates/js/translated/order.js:2552
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:2522
+#: templates/js/translated/order.js:2633
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:2624
+#: templates/js/translated/order.js:2735
msgid "Update Unit Price"
msgstr "Zaktualizuj cenę jednostkową"
-#: templates/js/translated/order.js:2638
+#: templates/js/translated/order.js:2749
msgid "No matching line items"
msgstr ""
@@ -8677,117 +8748,117 @@ msgstr ""
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:481
+#: templates/js/translated/part.js:482
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:509 templates/js/translated/part.js:594
+#: templates/js/translated/part.js:510 templates/js/translated/part.js:595
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:513 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:514 templates/js/translated/part.js:599
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:525
+#: templates/js/translated/part.js:526
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:529
+#: templates/js/translated/part.js:530
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:644
+#: templates/js/translated/part.js:645
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1034
+#: templates/js/translated/part.js:1035
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1058
+#: templates/js/translated/part.js:1059
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1125 templates/js/translated/part.js:1385
+#: templates/js/translated/part.js:1126 templates/js/translated/part.js:1386
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1295
+#: templates/js/translated/part.js:1296
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1318
+#: templates/js/translated/part.js:1319
#: templates/js/translated/table_filters.js:425
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1409 templates/js/translated/part.js:1581
-#: templates/js/translated/stock.js:2572
+#: templates/js/translated/part.js:1410 templates/js/translated/part.js:1582
+#: templates/js/translated/stock.js:2528
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1425
+#: templates/js/translated/part.js:1426
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1600 templates/js/translated/stock.js:2591
+#: templates/js/translated/part.js:1601 templates/js/translated/stock.js:2547
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1664
+#: templates/js/translated/part.js:1665
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1678 templates/js/translated/stock.js:2635
+#: templates/js/translated/part.js:1679 templates/js/translated/stock.js:2591
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1722
+#: templates/js/translated/part.js:1723
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1773 templates/js/translated/stock.js:1270
+#: templates/js/translated/part.js:1774 templates/js/translated/stock.js:1226
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1774 templates/js/translated/stock.js:1271
-#: templates/js/translated/stock.js:1517
+#: templates/js/translated/part.js:1775 templates/js/translated/stock.js:1227
+#: templates/js/translated/stock.js:1473
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1780
+#: templates/js/translated/part.js:1781
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1802
+#: templates/js/translated/part.js:1803
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1816
+#: templates/js/translated/part.js:1817
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1841
+#: templates/js/translated/part.js:1842
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1896
+#: templates/js/translated/part.js:1897
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1897
+#: templates/js/translated/part.js:1898
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1998
+#: templates/js/translated/part.js:1999
msgid "Single Price"
msgstr "Cena jednostkowa"
-#: templates/js/translated/part.js:2017
+#: templates/js/translated/part.js:2018
msgid "Single Price Difference"
msgstr ""
@@ -8861,368 +8932,356 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:102
+#: templates/js/translated/stock.js:101
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:111
+#: templates/js/translated/stock.js:110
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:154
+#: templates/js/translated/stock.js:153
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:194
+#: templates/js/translated/stock.js:193
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:233
+#: templates/js/translated/stock.js:232
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/stock.js:238
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:381
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:395
+#: templates/js/translated/stock.js:394
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:420
+#: templates/js/translated/stock.js:419
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425
+#: templates/js/translated/stock.js:423 templates/js/translated/stock.js:424
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:441
+#: templates/js/translated/stock.js:440
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:461
+#: templates/js/translated/stock.js:460
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:470
+#: templates/js/translated/stock.js:469
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:515
-msgid "Export Stock"
-msgstr ""
-
-#: templates/js/translated/stock.js:526
-msgid "Include Sublocations"
-msgstr ""
-
-#: templates/js/translated/stock.js:527
-msgid "Include stock items in sublocations"
-msgstr ""
-
-#: templates/js/translated/stock.js:636
+#: templates/js/translated/stock.js:592
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:637
+#: templates/js/translated/stock.js:593
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:714
+#: templates/js/translated/stock.js:670
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:715
+#: templates/js/translated/stock.js:671
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:717
+#: templates/js/translated/stock.js:673
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:718
+#: templates/js/translated/stock.js:674
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:804
+#: templates/js/translated/stock.js:760
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:805
+#: templates/js/translated/stock.js:761
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:900
+#: templates/js/translated/stock.js:856
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:901
+#: templates/js/translated/stock.js:857
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:907
+#: templates/js/translated/stock.js:863
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:908
+#: templates/js/translated/stock.js:864
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:912
+#: templates/js/translated/stock.js:868
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:913
+#: templates/js/translated/stock.js:869
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:917
+#: templates/js/translated/stock.js:873
msgid "Add Stock"
msgstr "Dodaj stan"
-#: templates/js/translated/stock.js:918 users/models.py:213
+#: templates/js/translated/stock.js:874 users/models.py:213
msgid "Add"
msgstr "Dodaj"
-#: templates/js/translated/stock.js:922
+#: templates/js/translated/stock.js:878
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1011
+#: templates/js/translated/stock.js:967
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1011
+#: templates/js/translated/stock.js:967
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1051
+#: templates/js/translated/stock.js:1007
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1209
+#: templates/js/translated/stock.js:1165
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1211
+#: templates/js/translated/stock.js:1167
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1216
+#: templates/js/translated/stock.js:1172
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1263
+#: templates/js/translated/stock.js:1219
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1266
+#: templates/js/translated/stock.js:1222
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1292
+#: templates/js/translated/stock.js:1248
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1348
+#: templates/js/translated/stock.js:1304
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1500
+#: templates/js/translated/stock.js:1456
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1522
+#: templates/js/translated/stock.js:1478
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1551
+#: templates/js/translated/stock.js:1507
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1511
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1563
+#: templates/js/translated/stock.js:1519
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1569
+#: templates/js/translated/stock.js:1525
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1727
+#: templates/js/translated/stock.js:1683
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1732
+#: templates/js/translated/stock.js:1688
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1691
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1739
+#: templates/js/translated/stock.js:1695
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1741
+#: templates/js/translated/stock.js:1697
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1747
+#: templates/js/translated/stock.js:1703
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1749
+#: templates/js/translated/stock.js:1705
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1751
+#: templates/js/translated/stock.js:1707
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1756
+#: templates/js/translated/stock.js:1712
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1763
+#: templates/js/translated/stock.js:1719
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1765
+#: templates/js/translated/stock.js:1721
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1767
+#: templates/js/translated/stock.js:1723
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1771
+#: templates/js/translated/stock.js:1727
#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1821
+#: templates/js/translated/stock.js:1777
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1903
+#: templates/js/translated/stock.js:1859
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1941
+#: templates/js/translated/stock.js:1897
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1962 templates/js/translated/stock.js:2010
+#: templates/js/translated/stock.js:1918 templates/js/translated/stock.js:1966
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:2050
+#: templates/js/translated/stock.js:2006
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:2077
+#: templates/js/translated/stock.js:2033
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:2079
+#: templates/js/translated/stock.js:2035
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:2278
+#: templates/js/translated/stock.js:2234
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2292
+#: templates/js/translated/stock.js:2248
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2293
+#: templates/js/translated/stock.js:2249
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2472
+#: templates/js/translated/stock.js:2428
msgid "Allocated Quantity"
msgstr ""
-#: templates/js/translated/stock.js:2682
+#: templates/js/translated/stock.js:2638
msgid "Details"
msgstr "Szczegóły"
-#: templates/js/translated/stock.js:2707
+#: templates/js/translated/stock.js:2663
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2726
+#: templates/js/translated/stock.js:2682
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2745
+#: templates/js/translated/stock.js:2701
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2763
+#: templates/js/translated/stock.js:2719
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2786
+#: templates/js/translated/stock.js:2742
msgid "Added"
msgstr "Dodano"
-#: templates/js/translated/stock.js:2794
+#: templates/js/translated/stock.js:2750
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2835
+#: templates/js/translated/stock.js:2791
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2836
+#: templates/js/translated/stock.js:2792
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2887
+#: templates/js/translated/stock.js:2843
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2938
+#: templates/js/translated/stock.js:2894
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2974
+#: templates/js/translated/stock.js:2930
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2975
+#: templates/js/translated/stock.js:2931
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2977
+#: templates/js/translated/stock.js:2933
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2978
+#: templates/js/translated/stock.js:2934
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2979
+#: templates/js/translated/stock.js:2935
msgid "The Stock Item is serialized and does not belong to another item"
msgstr ""
-#: templates/js/translated/stock.js:2992
+#: templates/js/translated/stock.js:2948
msgid "Select part to install"
msgstr ""
@@ -9429,60 +9488,68 @@ msgstr ""
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:368
+#: templates/js/translated/tables.js:50
+msgid "Export Table Data"
+msgstr ""
+
+#: templates/js/translated/tables.js:54
+msgid "Select File Format"
+msgstr ""
+
+#: templates/js/translated/tables.js:433
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:371
+#: templates/js/translated/tables.js:436
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:376
+#: templates/js/translated/tables.js:441
msgid "Showing all rows"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:382 templates/search_form.html:6
+#: templates/js/translated/tables.js:447 templates/search_form.html:6
#: templates/search_form.html:7
msgid "Search"
msgstr ""
-#: templates/js/translated/tables.js:385
+#: templates/js/translated/tables.js:450
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:388
+#: templates/js/translated/tables.js:453
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:391
+#: templates/js/translated/tables.js:456
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:394
+#: templates/js/translated/tables.js:459
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:397
+#: templates/js/translated/tables.js:462
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:400
+#: templates/js/translated/tables.js:465
msgid "All"
msgstr ""
@@ -9586,63 +9653,59 @@ msgstr ""
msgid "Email settings not configured"
msgstr ""
-#: templates/stock_table.html:14
-msgid "Export Stock Information"
-msgstr ""
-
-#: templates/stock_table.html:20
+#: templates/stock_table.html:17
msgid "Barcode Actions"
msgstr ""
-#: templates/stock_table.html:36
+#: templates/stock_table.html:33
msgid "Print test reports"
msgstr ""
-#: templates/stock_table.html:43
+#: templates/stock_table.html:40
msgid "Stock Options"
msgstr ""
-#: templates/stock_table.html:48
+#: templates/stock_table.html:45
msgid "Add to selected stock items"
msgstr ""
-#: templates/stock_table.html:49
+#: templates/stock_table.html:46
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:50
+#: templates/stock_table.html:47
msgid "Stocktake selected stock items"
msgstr ""
-#: templates/stock_table.html:51
+#: templates/stock_table.html:48
msgid "Move selected stock items"
msgstr ""
-#: templates/stock_table.html:52
+#: templates/stock_table.html:49
msgid "Merge selected stock items"
msgstr ""
-#: templates/stock_table.html:52
+#: templates/stock_table.html:49
msgid "Merge stock"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:50
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:52
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:52
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:55
msgid "Delete selected items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:55
msgid "Delete stock"
msgstr ""
diff --git a/InvenTree/locale/pt/LC_MESSAGES/django.po b/InvenTree/locale/pt/LC_MESSAGES/django.po
index 0da005ea1c..10b487d252 100644
--- a/InvenTree/locale/pt/LC_MESSAGES/django.po
+++ b/InvenTree/locale/pt/LC_MESSAGES/django.po
@@ -1,10 +1,10 @@
-#: templates/js/translated/order.js:2090
+#: templates/js/translated/order.js:2178
msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-03-01 13:34+0000\n"
-"PO-Revision-Date: 2022-03-01 14:09\n"
+"POT-Creation-Date: 2022-03-07 04:31+0000\n"
+"PO-Revision-Date: 2022-03-07 04:47\n"
"Last-Translator: \n"
"Language-Team: Portuguese\n"
"Language: pt_PT\n"
@@ -86,7 +86,7 @@ msgid "Duplicate serial: {sn}"
msgstr ""
#: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435
-#: stock/views.py:1101
+#: stock/views.py:983
msgid "Invalid quantity provided"
msgstr ""
@@ -114,100 +114,100 @@ msgstr ""
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:176
+#: InvenTree/models.py:185
msgid "Missing file"
msgstr ""
-#: InvenTree/models.py:177
+#: InvenTree/models.py:186
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:188 stock/models.py:2071
+#: InvenTree/models.py:197 stock/models.py:2123
#: templates/js/translated/attachment.js:119
msgid "Attachment"
msgstr ""
-#: InvenTree/models.py:189
+#: InvenTree/models.py:198
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:195 company/models.py:131 company/models.py:348
+#: InvenTree/models.py:204 company/models.py:131 company/models.py:348
#: company/models.py:564 order/models.py:127 part/models.py:860
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1346
+#: templates/js/translated/company.js:829 templates/js/translated/part.js:1347
msgid "Link"
msgstr ""
-#: InvenTree/models.py:196 build/models.py:330 part/models.py:861
-#: stock/models.py:566
+#: InvenTree/models.py:205 build/models.py:332 part/models.py:861
+#: stock/models.py:618
msgid "Link to external URL"
msgstr ""
-#: InvenTree/models.py:199 templates/js/translated/attachment.js:163
+#: InvenTree/models.py:208 templates/js/translated/attachment.js:163
msgid "Comment"
msgstr ""
-#: InvenTree/models.py:199
+#: InvenTree/models.py:208
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1277
+#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1277
#: common/models.py:1278 common/models.py:1506 common/models.py:1507
-#: part/models.py:2303 part/models.py:2323
+#: part/models.py:2317 part/models.py:2337
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2817
+#: templates/js/translated/stock.js:2773
msgid "User"
msgstr ""
-#: InvenTree/models.py:209
+#: InvenTree/models.py:218
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:232
+#: InvenTree/models.py:241
msgid "Filename must not be empty"
msgstr ""
-#: InvenTree/models.py:255
+#: InvenTree/models.py:264
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:265
+#: InvenTree/models.py:274
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:268
+#: InvenTree/models.py:277
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:275
+#: InvenTree/models.py:284
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:282
+#: InvenTree/models.py:291
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:317
+#: InvenTree/models.py:326
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1492
+#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1492
#: company/models.py:415 label/models.py:112 part/models.py:804
-#: part/models.py:2487 plugin/models.py:40 report/models.py:181
+#: part/models.py:2501 plugin/models.py:40 report/models.py:181
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:48
#: templates/InvenTree/settings/plugin.html:125
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:319
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:567
-#: templates/js/translated/part.js:706 templates/js/translated/part.js:1653
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/company.js:641 templates/js/translated/part.js:568
+#: templates/js/translated/part.js:707 templates/js/translated/part.js:1654
+#: templates/js/translated/stock.js:2573
msgid "Name"
msgstr ""
-#: InvenTree/models.py:340 build/models.py:207
+#: InvenTree/models.py:349 build/models.py:209
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
@@ -219,28 +219,28 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:92
#: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:765
-#: templates/js/translated/build.js:1920 templates/js/translated/company.js:345
+#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763
+#: templates/js/translated/build.js:1973 templates/js/translated/company.js:345
#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:911
-#: templates/js/translated/order.js:1105 templates/js/translated/order.js:1366
-#: templates/js/translated/part.js:626 templates/js/translated/part.js:1021
-#: templates/js/translated/part.js:1106 templates/js/translated/part.js:1276
-#: templates/js/translated/part.js:1672 templates/js/translated/part.js:1741
-#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2446
-#: templates/js/translated/stock.js:2629 templates/js/translated/stock.js:2667
+#: templates/js/translated/company.js:840 templates/js/translated/order.js:971
+#: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454
+#: templates/js/translated/part.js:627 templates/js/translated/part.js:1022
+#: templates/js/translated/part.js:1107 templates/js/translated/part.js:1277
+#: templates/js/translated/part.js:1673 templates/js/translated/part.js:1742
+#: templates/js/translated/stock.js:1656 templates/js/translated/stock.js:2402
+#: templates/js/translated/stock.js:2585 templates/js/translated/stock.js:2623
msgid "Description"
msgstr ""
-#: InvenTree/models.py:341
+#: InvenTree/models.py:350
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:349
+#: InvenTree/models.py:358
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:65 part/models.py:2805
+#: InvenTree/serializers.py:65 part/models.py:2820
msgid "Must be a valid number"
msgstr ""
@@ -294,87 +294,87 @@ msgstr ""
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:665
msgid "German"
msgstr ""
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:666
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:667
msgid "English"
msgstr ""
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:668
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:669
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:670
msgid "French"
msgstr ""
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:671
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:672
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:673
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:674
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:675
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:676
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:677
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:678
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:679
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:680
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:681
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:682
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:683
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:684
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:685
msgid "Chinese"
msgstr ""
@@ -421,7 +421,7 @@ msgid "Returned"
msgstr ""
#: InvenTree/status_codes.py:143 order/models.py:997
-#: templates/js/translated/order.js:2097 templates/js/translated/order.js:2394
+#: templates/js/translated/order.js:2185 templates/js/translated/order.js:2482
msgid "Shipped"
msgstr ""
@@ -501,7 +501,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2204
+#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2160
msgid "Merged stock items"
msgstr ""
@@ -593,43 +593,43 @@ msgstr ""
msgid "System Information"
msgstr ""
-#: barcodes/api.py:54 barcodes/api.py:152
+#: barcodes/api.py:55 barcodes/api.py:156
msgid "Must provide barcode_data parameter"
msgstr ""
-#: barcodes/api.py:128
+#: barcodes/api.py:132
msgid "No match found for barcode data"
msgstr ""
-#: barcodes/api.py:130
+#: barcodes/api.py:134
msgid "Match found for barcode data"
msgstr ""
-#: barcodes/api.py:155
+#: barcodes/api.py:159
msgid "Must provide stockitem parameter"
msgstr ""
-#: barcodes/api.py:162
+#: barcodes/api.py:166
msgid "No matching stock item found"
msgstr ""
-#: barcodes/api.py:193
+#: barcodes/api.py:197
msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:197
+#: barcodes/api.py:201
msgid "Barcode already matches Stock Location"
msgstr ""
-#: barcodes/api.py:201
+#: barcodes/api.py:205
msgid "Barcode already matches Part"
msgstr ""
-#: barcodes/api.py:207 barcodes/api.py:219
+#: barcodes/api.py:211 barcodes/api.py:223
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: barcodes/api.py:225
+#: barcodes/api.py:229
msgid "Barcode associated with Stock Item"
msgstr ""
@@ -641,18 +641,18 @@ msgstr ""
msgid "Confirm build cancellation"
msgstr ""
-#: build/models.py:133
+#: build/models.py:135
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:139 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:676 templates/js/translated/stock.js:2422
+#: templates/js/translated/build.js:677 templates/js/translated/stock.js:2378
msgid "Build Order"
msgstr ""
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:140 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:92
#: order/templates/order/so_sidebar.html:13
@@ -662,41 +662,41 @@ msgstr ""
msgid "Build Orders"
msgstr ""
-#: build/models.py:198
+#: build/models.py:200
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:213 order/models.py:563
-#: order/models.py:843 part/models.py:2716
+#: build/models.py:201 order/models.py:213 order/models.py:563
+#: order/models.py:843 part/models.py:2731
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:772 templates/js/translated/build.js:1401
-#: templates/js/translated/order.js:1136 templates/js/translated/order.js:2261
+#: templates/js/translated/bom.js:770 templates/js/translated/build.js:1402
+#: templates/js/translated/order.js:1223 templates/js/translated/order.js:2349
msgid "Reference"
msgstr ""
-#: build/models.py:210
+#: build/models.py:212
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:219 build/templates/build/build_base.html:169
+#: build/models.py:221 build/templates/build/build_base.html:169
#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:222
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:225 build/templates/build/build_base.html:77
+#: build/models.py:227 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
#: order/models.py:912 order/models.py:986
#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359
-#: part/models.py:2249 part/models.py:2265 part/models.py:2284
-#: part/models.py:2301 part/models.py:2403 part/models.py:2525
-#: part/models.py:2615 part/models.py:2691 part/models.py:2998
-#: part/serializers.py:666 part/templates/part/part_app_base.html:8
+#: part/models.py:2263 part/models.py:2279 part/models.py:2298
+#: part/models.py:2315 part/models.py:2417 part/models.py:2539
+#: part/models.py:2629 part/models.py:2706 part/models.py:3013
+#: part/serializers.py:669 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: part/templates/part/upload_bom.html:52
@@ -707,231 +707,231 @@ msgstr ""
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551
-#: templates/js/translated/bom.js:730 templates/js/translated/build.js:902
-#: templates/js/translated/build.js:1270 templates/js/translated/build.js:1655
-#: templates/js/translated/build.js:1925 templates/js/translated/company.js:492
+#: templates/js/translated/bom.js:728 templates/js/translated/build.js:903
+#: templates/js/translated/build.js:1271 templates/js/translated/build.js:1666
+#: templates/js/translated/build.js:1978 templates/js/translated/company.js:492
#: templates/js/translated/company.js:749 templates/js/translated/order.js:84
-#: templates/js/translated/order.js:651 templates/js/translated/order.js:1090
-#: templates/js/translated/order.js:1693 templates/js/translated/order.js:2050
-#: templates/js/translated/order.js:2245 templates/js/translated/part.js:1006
-#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1254
-#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1657
-#: templates/js/translated/stock.js:2892 templates/js/translated/stock.js:2991
+#: templates/js/translated/order.js:711 templates/js/translated/order.js:1177
+#: templates/js/translated/order.js:1781 templates/js/translated/order.js:2138
+#: templates/js/translated/order.js:2333 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1088 templates/js/translated/part.js:1255
+#: templates/js/translated/stock.js:518 templates/js/translated/stock.js:683
+#: templates/js/translated/stock.js:890 templates/js/translated/stock.js:1613
+#: templates/js/translated/stock.js:2848 templates/js/translated/stock.js:2947
msgid "Part"
msgstr ""
-#: build/models.py:233
+#: build/models.py:235
msgid "Select part to build"
msgstr ""
-#: build/models.py:238
+#: build/models.py:240
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:242
+#: build/models.py:244
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 templates/js/translated/build.js:1643
-#: templates/js/translated/order.js:1681
+#: build/models.py:249 build/serializers.py:729
+#: templates/js/translated/build.js:1654 templates/js/translated/order.js:1769
msgid "Source Location"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:256
+#: build/models.py:258
msgid "Destination Location"
msgstr ""
-#: build/models.py:260
+#: build/models.py:262
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:264
+#: build/models.py:266
msgid "Build Quantity"
msgstr ""
-#: build/models.py:267
+#: build/models.py:269
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:271
+#: build/models.py:273
msgid "Completed items"
msgstr ""
-#: build/models.py:273
+#: build/models.py:275
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:277 part/templates/part/part_base.html:234
+#: build/models.py:279 part/templates/part/part_base.html:234
msgid "Build Status"
msgstr ""
-#: build/models.py:281
+#: build/models.py:283
msgid "Build status code"
msgstr ""
-#: build/models.py:285 build/serializers.py:218 order/serializers.py:272
-#: stock/models.py:570 templates/js/translated/order.js:513
+#: build/models.py:287 build/serializers.py:218 order/serializers.py:272
+#: stock/models.py:622 templates/js/translated/order.js:573
msgid "Batch Code"
msgstr ""
-#: build/models.py:289 build/serializers.py:219
+#: build/models.py:291 build/serializers.py:219
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:129 part/models.py:999
-#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1379
+#: build/models.py:294 order/models.py:129 part/models.py:999
+#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1467
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:585
+#: build/models.py:298 order/models.py:585
msgid "Target completion date"
msgstr ""
-#: build/models.py:297
+#: build/models.py:299
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:255
-#: templates/js/translated/build.js:2002
+#: build/models.py:302 order/models.py:255
+#: templates/js/translated/build.js:2055
msgid "Completion Date"
msgstr ""
-#: build/models.py:306
+#: build/models.py:308
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:1970
+#: build/models.py:316 templates/js/translated/build.js:2023
msgid "Issued by"
msgstr ""
-#: build/models.py:315
+#: build/models.py:317
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:323 build/templates/build/build_base.html:190
+#: build/models.py:325 build/templates/build/build_base.html:190
#: build/templates/build/detail.html:116 order/models.py:143
#: order/templates/order/order_base.html:170
#: order/templates/order/sales_order_base.html:182 part/models.py:1003
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1982 templates/js/translated/order.js:945
+#: templates/js/translated/build.js:2035 templates/js/translated/order.js:1005
msgid "Responsible"
msgstr ""
-#: build/models.py:324
+#: build/models.py:326
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:329 build/templates/build/detail.html:102
+#: build/models.py:331 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:564
+#: part/templates/part/part_base.html:354 stock/models.py:616
#: stock/templates/stock/item_base.html:352
msgid "External Link"
msgstr ""
-#: build/models.py:334 build/serializers.py:381
+#: build/models.py:336 build/serializers.py:381
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
#: order/models.py:147 order/models.py:845 order/models.py:1107
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/models.py:988
-#: part/templates/part/detail.html:146 part/templates/part/part_sidebar.html:57
+#: part/templates/part/detail.html:141 part/templates/part/part_sidebar.html:57
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:137 stock/forms.py:171 stock/models.py:636
-#: stock/models.py:1971 stock/models.py:2077 stock/serializers.py:332
+#: stock/forms.py:137 stock/forms.py:171 stock/models.py:688
+#: stock/models.py:2023 stock/models.py:2129 stock/serializers.py:332
#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:936
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1257
-#: templates/js/translated/order.js:1562 templates/js/translated/order.js:2419
-#: templates/js/translated/stock.js:1344 templates/js/translated/stock.js:1935
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934
+#: templates/js/translated/company.js:845 templates/js/translated/order.js:1344
+#: templates/js/translated/order.js:1650 templates/js/translated/order.js:2507
+#: templates/js/translated/stock.js:1300 templates/js/translated/stock.js:1891
msgid "Notes"
msgstr ""
-#: build/models.py:335
+#: build/models.py:337
msgid "Extra build notes"
msgstr ""
-#: build/models.py:748
+#: build/models.py:750
msgid "No build output specified"
msgstr ""
-#: build/models.py:751
+#: build/models.py:753
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:754
+#: build/models.py:756
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1060
+#: build/models.py:1162
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1069
+#: build/models.py:1171
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1079
+#: build/models.py:1181
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1085 order/models.py:1225
+#: build/models.py:1187 order/models.py:1225
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1091
+#: build/models.py:1193
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1148
+#: build/models.py:1250
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1217 stock/templates/stock/item_base.html:324
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898
+#: build/models.py:1319 stock/templates/stock/item_base.html:324
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1951
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1218
+#: build/models.py:1320
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1234 build/serializers.py:576 order/serializers.py:783
+#: build/models.py:1336 build/serializers.py:576 order/serializers.py:783
#: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635
#: stock/serializers.py:753 stock/templates/stock/item_base.html:9
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:346
-#: templates/js/translated/build.js:687 templates/js/translated/build.js:692
-#: templates/js/translated/build.js:1657 templates/js/translated/build.js:2050
-#: templates/js/translated/order.js:85 templates/js/translated/order.js:1694
-#: templates/js/translated/order.js:1949 templates/js/translated/order.js:1954
-#: templates/js/translated/order.js:2057 templates/js/translated/order.js:2147
-#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728
-#: templates/js/translated/stock.js:2753
+#: templates/js/translated/build.js:688 templates/js/translated/build.js:693
+#: templates/js/translated/build.js:1668 templates/js/translated/build.js:2103
+#: templates/js/translated/order.js:85 templates/js/translated/order.js:1782
+#: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:2235
+#: templates/js/translated/stock.js:519 templates/js/translated/stock.js:684
+#: templates/js/translated/stock.js:2709
msgid "Stock Item"
msgstr ""
-#: build/models.py:1235
+#: build/models.py:1337
msgid "Source stock item"
msgstr ""
-#: build/models.py:1247 build/serializers.py:188
+#: build/models.py:1349 build/serializers.py:188
#: build/templates/build/build_base.html:82
#: build/templates/build/detail.html:35 common/models.py:1317
#: company/forms.py:42 company/templates/company/supplier_part.html:251
#: order/models.py:836 order/models.py:1265 order/serializers.py:903
#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144
-#: part/forms.py:160 part/forms.py:176 part/models.py:2707
-#: part/templates/part/detail.html:1008 part/templates/part/detail.html:1094
+#: part/forms.py:160 part/forms.py:176 part/models.py:2722
+#: part/templates/part/detail.html:994 part/templates/part/detail.html:1080
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_build_order_base.html:114
@@ -943,32 +943,32 @@ msgstr ""
#: stock/templates/stock/item_base.html:176
#: stock/templates/stock/item_base.html:241
#: stock/templates/stock/item_base.html:249
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:780
-#: templates/js/translated/build.js:375 templates/js/translated/build.js:523
-#: templates/js/translated/build.js:714 templates/js/translated/build.js:911
-#: templates/js/translated/build.js:921 templates/js/translated/build.js:1297
-#: templates/js/translated/build.js:1658
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778
+#: templates/js/translated/build.js:376 templates/js/translated/build.js:524
+#: templates/js/translated/build.js:715 templates/js/translated/build.js:912
+#: templates/js/translated/build.js:922 templates/js/translated/build.js:1298
+#: templates/js/translated/build.js:1669
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:101 templates/js/translated/order.js:1142
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:1976
-#: templates/js/translated/order.js:2064 templates/js/translated/order.js:2153
-#: templates/js/translated/order.js:2267 templates/js/translated/part.js:906
-#: templates/js/translated/part.js:1884 templates/js/translated/part.js:2007
-#: templates/js/translated/part.js:2085 templates/js/translated/stock.js:391
-#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758
-#: templates/js/translated/stock.js:2802 templates/js/translated/stock.js:2904
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:1229
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:2064
+#: templates/js/translated/order.js:2152 templates/js/translated/order.js:2241
+#: templates/js/translated/order.js:2355 templates/js/translated/part.js:907
+#: templates/js/translated/part.js:1885 templates/js/translated/part.js:2008
+#: templates/js/translated/part.js:2086 templates/js/translated/stock.js:390
+#: templates/js/translated/stock.js:544 templates/js/translated/stock.js:714
+#: templates/js/translated/stock.js:2758 templates/js/translated/stock.js:2860
msgid "Quantity"
msgstr ""
-#: build/models.py:1248
+#: build/models.py:1350
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1256
+#: build/models.py:1358
msgid "Install into"
msgstr ""
-#: build/models.py:1257
+#: build/models.py:1359
msgid "Destination stock item"
msgstr ""
@@ -997,8 +997,8 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:201 build/serializers.py:596 order/models.py:280
-#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:826
-#: stock/models.py:404 stock/models.py:1180 stock/serializers.py:305
+#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:836
+#: stock/models.py:456 stock/models.py:1232 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1012,8 +1012,8 @@ msgstr ""
#: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907
#: stock/forms.py:78 stock/serializers.py:314
-#: templates/js/translated/order.js:524 templates/js/translated/stock.js:238
-#: templates/js/translated/stock.js:392
+#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237
+#: templates/js/translated/stock.js:391
msgid "Serial Numbers"
msgstr ""
@@ -1029,7 +1029,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:275 stock/api.py:549
+#: build/serializers.py:275 stock/api.py:551
msgid "The following serial numbers already exist"
msgstr ""
@@ -1041,13 +1041,13 @@ msgstr ""
#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788
#: stock/serializers.py:1029 stock/templates/stock/item_base.html:292
#: templates/js/translated/barcode.js:384
-#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:699
-#: templates/js/translated/build.js:1309 templates/js/translated/order.js:551
-#: templates/js/translated/order.js:1961 templates/js/translated/order.js:2072
-#: templates/js/translated/order.js:2080 templates/js/translated/order.js:2161
-#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564
-#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936
-#: templates/js/translated/stock.js:1807 templates/js/translated/stock.js:2694
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700
+#: templates/js/translated/build.js:1310 templates/js/translated/order.js:611
+#: templates/js/translated/order.js:2049 templates/js/translated/order.js:2160
+#: templates/js/translated/order.js:2168 templates/js/translated/order.js:2249
+#: templates/js/translated/part.js:179 templates/js/translated/stock.js:520
+#: templates/js/translated/stock.js:685 templates/js/translated/stock.js:892
+#: templates/js/translated/stock.js:1763 templates/js/translated/stock.js:2650
msgid "Location"
msgstr ""
@@ -1058,10 +1058,10 @@ msgstr ""
#: build/serializers.py:377 build/templates/build/build_base.html:142
#: build/templates/build/detail.html:63 order/models.py:579
#: order/serializers.py:290 stock/templates/stock/item_base.html:182
-#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1954
-#: templates/js/translated/order.js:656 templates/js/translated/order.js:915
-#: templates/js/translated/order.js:1371 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2771 templates/js/translated/stock.js:2920
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2007
+#: templates/js/translated/order.js:716 templates/js/translated/order.js:975
+#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2727 templates/js/translated/stock.js:2876
msgid "Status"
msgstr ""
@@ -1073,7 +1073,7 @@ msgstr ""
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:445 templates/js/translated/build.js:150
+#: build/serializers.py:445 templates/js/translated/build.js:151
msgid "Required stock has not been fully allocated"
msgstr ""
@@ -1085,7 +1085,7 @@ msgstr ""
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:461 templates/js/translated/build.js:154
+#: build/serializers.py:461 templates/js/translated/build.js:155
msgid "Required build quantity has not been completed"
msgstr ""
@@ -1097,8 +1097,8 @@ msgstr ""
msgid "No build outputs have been created for this build order"
msgstr ""
-#: build/serializers.py:501 build/serializers.py:550 part/models.py:2831
-#: part/models.py:2990
+#: build/serializers.py:501 build/serializers.py:550 part/models.py:2846
+#: part/models.py:3005
msgid "BOM Item"
msgstr ""
@@ -1135,6 +1135,26 @@ msgstr ""
msgid "Allocation items must be provided"
msgstr ""
+#: build/serializers.py:730
+msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
+msgstr ""
+
+#: build/serializers.py:735
+msgid "Interchangeable Stock"
+msgstr ""
+
+#: build/serializers.py:736
+msgid "Stock items in multiple locations can be used interchangeably"
+msgstr ""
+
+#: build/serializers.py:741
+msgid "Substitute Stock"
+msgstr ""
+
+#: build/serializers.py:742
+msgid "Allow allocation of substitute parts"
+msgstr ""
+
#: build/tasks.py:98
msgid "Stock required for build order"
msgstr ""
@@ -1206,9 +1226,9 @@ msgstr ""
#: order/templates/order/order_base.html:156
#: order/templates/order/sales_order_base.html:163
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1994 templates/js/translated/order.js:932
-#: templates/js/translated/order.js:1204 templates/js/translated/order.js:1387
-#: templates/js/translated/order.js:2330 templates/js/translated/part.js:910
+#: templates/js/translated/build.js:2047 templates/js/translated/order.js:992
+#: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475
+#: templates/js/translated/order.js:2418 templates/js/translated/part.js:911
msgid "Target Date"
msgstr ""
@@ -1230,7 +1250,7 @@ msgstr ""
#: build/templates/build/build_base.html:163
#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
#: order/templates/order/sales_order_base.html:170
-#: templates/js/translated/build.js:1940
+#: templates/js/translated/build.js:1993
#: templates/js/translated/table_filters.js:365
msgid "Completed"
msgstr ""
@@ -1242,7 +1262,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:286
-#: templates/js/translated/order.js:1326 templates/js/translated/stock.js:2436
+#: templates/js/translated/order.js:1414 templates/js/translated/stock.js:2392
msgid "Sales Order"
msgstr ""
@@ -1277,7 +1297,7 @@ msgid "Stock can be taken from any available location."
msgstr ""
#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133
-#: templates/js/translated/order.js:657 templates/js/translated/order.js:1246
+#: templates/js/translated/order.js:717 templates/js/translated/order.js:1333
msgid "Destination"
msgstr ""
@@ -1285,13 +1305,13 @@ msgstr ""
msgid "Destination location not specified"
msgstr ""
-#: build/templates/build/detail.html:74 templates/js/translated/build.js:929
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:930
msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:310
-#: templates/js/translated/stock.js:1796 templates/js/translated/stock.js:2927
+#: templates/js/translated/stock.js:1752 templates/js/translated/stock.js:2883
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:238
msgid "Batch"
@@ -1300,7 +1320,7 @@ msgstr ""
#: build/templates/build/detail.html:127
#: order/templates/order/order_base.html:143
#: order/templates/order/sales_order_base.html:157
-#: templates/js/translated/build.js:1962
+#: templates/js/translated/build.js:2015
msgid "Created"
msgstr ""
@@ -1320,7 +1340,7 @@ msgstr ""
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:177 templates/js/translated/build.js:1484
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1485
msgid "Unallocate stock"
msgstr ""
@@ -1329,111 +1349,119 @@ msgid "Unallocate Stock"
msgstr ""
#: build/templates/build/detail.html:180
-msgid "Allocate stock to build"
+msgid "Automatically allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
+#: build/templates/build/detail.html:181
+msgid "Auto Allocate"
+msgstr ""
+
+#: build/templates/build/detail.html:183
+msgid "Manually allocate stock to build"
+msgstr ""
+
+#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8
msgid "Allocate Stock"
msgstr ""
-#: build/templates/build/detail.html:184
+#: build/templates/build/detail.html:187
msgid "Order required parts"
msgstr ""
-#: build/templates/build/detail.html:185
+#: build/templates/build/detail.html:188
#: company/templates/company/detail.html:38
#: company/templates/company/detail.html:85 order/views.py:463
-#: part/templates/part/category.html:177
+#: part/templates/part/category.html:174
msgid "Order Parts"
msgstr ""
-#: build/templates/build/detail.html:197
+#: build/templates/build/detail.html:200
msgid "Untracked stock has been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:201
+#: build/templates/build/detail.html:204
msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:208
+#: build/templates/build/detail.html:211
msgid "Allocate selected items"
msgstr ""
-#: build/templates/build/detail.html:218
+#: build/templates/build/detail.html:221
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:230
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:231
+#: build/templates/build/detail.html:234
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:232
+#: build/templates/build/detail.html:235
msgid "New Build Output"
msgstr ""
-#: build/templates/build/detail.html:246
+#: build/templates/build/detail.html:249
msgid "Output Actions"
msgstr ""
-#: build/templates/build/detail.html:250
+#: build/templates/build/detail.html:253
msgid "Complete selected build outputs"
msgstr ""
-#: build/templates/build/detail.html:251
+#: build/templates/build/detail.html:254
msgid "Complete outputs"
msgstr ""
-#: build/templates/build/detail.html:253
+#: build/templates/build/detail.html:256
msgid "Delete selected build outputs"
msgstr ""
-#: build/templates/build/detail.html:254
+#: build/templates/build/detail.html:257
msgid "Delete outputs"
msgstr ""
-#: build/templates/build/detail.html:270
+#: build/templates/build/detail.html:273
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19
+#: build/templates/build/detail.html:285 build/templates/build/sidebar.html:19
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:107
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:222
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217
#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:105
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:298
+#: build/templates/build/detail.html:301
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:302 build/templates/build/detail.html:478
-#: company/templates/company/detail.html:188
-#: company/templates/company/detail.html:215
+#: build/templates/build/detail.html:305 build/templates/build/detail.html:481
+#: company/templates/company/detail.html:190
+#: company/templates/company/detail.html:217
#: order/templates/order/purchase_order_detail.html:80
#: order/templates/order/purchase_order_detail.html:108
#: order/templates/order/sales_order_detail.html:127
#: order/templates/order/sales_order_detail.html:186
-#: part/templates/part/detail.html:150 stock/templates/stock/item.html:125
+#: part/templates/part/detail.html:145 stock/templates/stock/item.html:125
#: stock/templates/stock/item.html:223
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:519
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:520
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:329
+#: build/templates/build/index.html:18 part/templates/part/detail.html:322
msgid "New Build Order"
msgstr ""
@@ -1658,7 +1686,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:732 part/models.py:2527 report/models.py:187
+#: common/models.py:732 part/models.py:2541 report/models.py:187
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:417
msgid "Template"
@@ -1668,7 +1696,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:739 part/models.py:951 templates/js/translated/bom.js:1300
+#: common/models.py:739 part/models.py:951 templates/js/translated/bom.js:1305
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:429
msgid "Assembly"
@@ -2243,7 +2271,7 @@ msgstr ""
#: common/models.py:1325 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:937 templates/js/translated/part.js:1889
+#: templates/js/translated/part.js:938 templates/js/translated/part.js:1890
msgid "Price"
msgstr ""
@@ -2337,14 +2365,14 @@ msgstr ""
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
-#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:210
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208
#: templates/patterns/wizard/upload.html:35
msgid "Upload File"
msgstr ""
#: common/views.py:94 order/views.py:244
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:211
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:209
#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
@@ -2472,7 +2500,7 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:508
+#: company/models.py:320 company/models.py:535 stock/models.py:560
#: stock/templates/stock/item_base.html:137 templates/js/translated/bom.js:541
msgid "Base Part"
msgstr ""
@@ -2499,8 +2527,8 @@ msgstr ""
#: company/models.py:342 company/templates/company/manufacturer_part.html:96
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1124
-#: templates/js/translated/part.js:245 templates/js/translated/part.js:895
+#: templates/js/translated/company.js:818 templates/js/translated/order.js:1211
+#: templates/js/translated/part.js:245 templates/js/translated/part.js:896
msgid "MPN"
msgstr ""
@@ -2529,8 +2557,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2064 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1331
+#: stock/models.py:2116 templates/js/translated/company.js:647
+#: templates/js/translated/part.js:716 templates/js/translated/stock.js:1287
msgid "Value"
msgstr ""
@@ -2538,10 +2566,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:945 part/models.py:2495
+#: company/models.py:429 part/models.py:945 part/models.py:2509
#: part/templates/part/part_base.html:288
#: templates/InvenTree/settings/settings.html:324
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:721
+#: templates/js/translated/company.js:653 templates/js/translated/part.js:722
msgid "Units"
msgstr ""
@@ -2559,8 +2587,8 @@ msgstr ""
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237
#: part/bom.py:265 stock/templates/stock/item_base.html:376
#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:898
-#: templates/js/translated/part.js:215 templates/js/translated/part.js:863
+#: templates/js/translated/company.js:774 templates/js/translated/order.js:958
+#: templates/js/translated/part.js:215 templates/js/translated/part.js:864
#: templates/js/translated/table_filters.js:388
msgid "Supplier"
msgstr ""
@@ -2570,8 +2598,8 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1111
-#: templates/js/translated/part.js:226 templates/js/translated/part.js:881
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198
+#: templates/js/translated/part.js:226 templates/js/translated/part.js:882
msgid "SKU"
msgstr ""
@@ -2592,7 +2620,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:119
-#: part/models.py:2719 part/templates/part/upload_bom.html:59
+#: part/models.py:2734 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409
msgid "Note"
@@ -2607,8 +2635,8 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:532 stock/templates/stock/item_base.html:317
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1931
+#: stock/models.py:584 stock/templates/stock/item_base.html:317
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1887
msgid "Packaging"
msgstr ""
@@ -2676,11 +2704,11 @@ msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:83 order/models.py:574
-#: order/templates/order/sales_order_base.html:115 stock/models.py:551
-#: stock/models.py:552 stock/serializers.py:683
+#: order/templates/order/sales_order_base.html:115 stock/models.py:603
+#: stock/models.py:604 stock/serializers.py:683
#: stock/templates/stock/item_base.html:269
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1348
-#: templates/js/translated/stock.js:2735
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1436
+#: templates/js/translated/stock.js:2691
#: templates/js/translated/table_filters.js:392
msgid "Customer"
msgstr ""
@@ -2711,7 +2739,7 @@ msgstr ""
#: company/templates/company/detail.html:20
#: company/templates/company/manufacturer_part.html:118
-#: part/templates/part/detail.html:367
+#: part/templates/part/detail.html:360
msgid "New Supplier Part"
msgstr ""
@@ -2719,14 +2747,14 @@ msgstr ""
#: company/templates/company/detail.html:79
#: company/templates/company/manufacturer_part.html:127
#: company/templates/company/manufacturer_part.html:156
-#: part/templates/part/category.html:171 part/templates/part/detail.html:376
-#: part/templates/part/detail.html:405
+#: part/templates/part/category.html:168 part/templates/part/detail.html:369
+#: part/templates/part/detail.html:398
msgid "Options"
msgstr ""
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177
+#: part/templates/part/category.html:174
msgid "Order parts"
msgstr ""
@@ -2748,7 +2776,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:395
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:388
msgid "New Manufacturer Part"
msgstr ""
@@ -2762,7 +2790,7 @@ msgstr ""
#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:40
+#: part/templates/part/detail.html:80 part/templates/part/part_sidebar.html:40
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
@@ -2784,7 +2812,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:44
+#: part/templates/part/detail.html:103 part/templates/part/part_sidebar.html:44
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
@@ -2802,23 +2830,23 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/detail.html:168
-#: templates/js/translated/build.js:1281
+#: templates/js/translated/build.js:1282
msgid "Assigned Stock"
msgstr ""
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:186
msgid "Company Notes"
msgstr ""
-#: company/templates/company/detail.html:384
+#: company/templates/company/detail.html:380
#: company/templates/company/manufacturer_part.html:215
-#: part/templates/part/detail.html:449
+#: part/templates/part/detail.html:442
msgid "Delete Supplier Parts?"
msgstr ""
-#: company/templates/company/detail.html:385
+#: company/templates/company/detail.html:381
#: company/templates/company/manufacturer_part.html:216
-#: part/templates/part/detail.html:450
+#: part/templates/part/detail.html:443
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2835,7 +2863,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:34
#: company/templates/company/supplier_part.html:159
-#: part/templates/part/detail.html:88 part/templates/part/part_base.html:76
+#: part/templates/part/detail.html:83 part/templates/part/part_base.html:76
msgid "Order part"
msgstr ""
@@ -2862,14 +2890,14 @@ msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
-#: part/templates/part/detail.html:378
+#: part/templates/part/detail.html:371
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
#: company/templates/company/manufacturer_part.html:158
#: company/templates/company/manufacturer_part.html:254
-#: part/templates/part/detail.html:378 part/templates/part/detail.html:407
+#: part/templates/part/detail.html:371 part/templates/part/detail.html:400
#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31
#: users/models.py:217
msgid "Delete"
@@ -2878,12 +2906,12 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:143
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:17
-#: part/templates/part/detail.html:196 part/templates/part/part_sidebar.html:9
+#: part/templates/part/detail.html:191 part/templates/part/part_sidebar.html:9
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:147
-#: part/templates/part/detail.html:201
+#: part/templates/part/detail.html:196
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:66
msgid "New Parameter"
@@ -2894,7 +2922,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:191
-#: part/templates/part/detail.html:908
+#: part/templates/part/detail.html:894
msgid "Add Parameter"
msgstr ""
@@ -2923,9 +2951,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:516
+#: company/templates/company/supplier_part.html:24 stock/models.py:568
#: stock/templates/stock/item_base.html:381
-#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1888
+#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1844
msgid "Supplier Part"
msgstr ""
@@ -2951,7 +2979,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:166
-#: templates/js/translated/stock.js:368
+#: templates/js/translated/stock.js:367
msgid "New Stock Item"
msgstr ""
@@ -2961,7 +2989,7 @@ msgid "Supplier Part Orders"
msgstr ""
#: company/templates/company/supplier_part.html:160
-#: part/templates/part/detail.html:89
+#: part/templates/part/detail.html:84
msgid "Order Part"
msgstr ""
@@ -2972,7 +3000,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1319
+#: part/templates/part/prices.html:271 part/views.py:1254
msgid "Add Price Break"
msgstr ""
@@ -2980,11 +3008,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1381
+#: company/templates/company/supplier_part.html:224 part/views.py:1316
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1367
+#: company/templates/company/supplier_part.html:238 part/views.py:1302
msgid "Edit Price Break"
msgstr ""
@@ -3002,10 +3030,10 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:150
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/bom.js:553 templates/js/translated/part.js:495
-#: templates/js/translated/part.js:630 templates/js/translated/part.js:1147
-#: templates/js/translated/part.js:1308 templates/js/translated/stock.js:935
-#: templates/js/translated/stock.js:1711 templates/navbar.html:28
+#: templates/js/translated/bom.js:553 templates/js/translated/part.js:496
+#: templates/js/translated/part.js:631 templates/js/translated/part.js:1148
+#: templates/js/translated/part.js:1309 templates/js/translated/stock.js:891
+#: templates/js/translated/stock.js:1667 templates/navbar.html:28
msgid "Stock"
msgstr ""
@@ -3028,7 +3056,7 @@ msgstr ""
#: stock/templates/stock/location.html:150
#: stock/templates/stock/location.html:162
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2641
+#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2597
#: templates/stats.html:105 templates/stats.html:114 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -3058,20 +3086,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:591
+#: company/views.py:129 part/views.py:589
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:623
+#: company/views.py:158 part/views.py:621
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:630
+#: company/views.py:165 part/views.py:628
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:639
+#: company/views.py:174 part/views.py:637
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3190,7 +3218,7 @@ msgid "Company from which the items are being ordered"
msgstr ""
#: order/models.py:231 order/templates/order/order_base.html:118
-#: templates/js/translated/order.js:907
+#: templates/js/translated/order.js:967
msgid "Supplier Reference"
msgstr ""
@@ -3247,7 +3275,7 @@ msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
#: order/models.py:589 order/models.py:1084
-#: templates/js/translated/order.js:1395 templates/js/translated/order.js:1546
+#: templates/js/translated/order.js:1483 templates/js/translated/order.js:1634
msgid "Shipment Date"
msgstr ""
@@ -3292,7 +3320,7 @@ msgid "Supplier part must match supplier"
msgstr ""
#: order/models.py:891 order/models.py:982 order/models.py:1078
-#: templates/js/translated/order.js:1937 templates/js/translated/stock.js:2403
+#: templates/js/translated/order.js:2025 templates/js/translated/stock.js:2359
msgid "Order"
msgstr ""
@@ -3300,8 +3328,8 @@ msgstr ""
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:331
-#: templates/js/translated/order.js:876 templates/js/translated/part.js:838
-#: templates/js/translated/stock.js:1865 templates/js/translated/stock.js:2716
+#: templates/js/translated/order.js:936 templates/js/translated/part.js:839
+#: templates/js/translated/stock.js:1821 templates/js/translated/stock.js:2672
msgid "Purchase Order"
msgstr ""
@@ -3310,8 +3338,8 @@ msgid "Supplier part"
msgstr ""
#: order/models.py:920 order/templates/order/order_base.html:163
-#: templates/js/translated/order.js:654 templates/js/translated/order.js:1226
-#: templates/js/translated/part.js:932 templates/js/translated/part.js:959
+#: templates/js/translated/order.js:714 templates/js/translated/order.js:1313
+#: templates/js/translated/part.js:933 templates/js/translated/part.js:960
#: templates/js/translated/table_filters.js:312
msgid "Received"
msgstr ""
@@ -3320,9 +3348,9 @@ msgstr ""
msgid "Number of items received"
msgstr ""
-#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:645
+#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:697
#: stock/serializers.py:170 stock/templates/stock/item_base.html:338
-#: templates/js/translated/stock.js:1919
+#: templates/js/translated/stock.js:1875
msgid "Purchase Price"
msgstr ""
@@ -3456,11 +3484,11 @@ msgstr ""
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:273 templates/js/translated/order.js:514
+#: order/serializers.py:273 templates/js/translated/order.js:574
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:281 templates/js/translated/order.js:525
+#: order/serializers.py:281 templates/js/translated/order.js:585
msgid "Enter serial numbers for incoming stock items"
msgstr ""
@@ -3578,7 +3606,7 @@ msgstr ""
#: order/templates/order/order_base.html:94
#: order/templates/order/sales_order_base.html:89
-#: templates/js/translated/stock.js:2459
+#: templates/js/translated/stock.js:2415
msgid "Order Status"
msgstr ""
@@ -3650,10 +3678,10 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/bom.js:76 templates/js/translated/build.js:380
-#: templates/js/translated/build.js:528 templates/js/translated/build.js:1547
-#: templates/js/translated/order.js:602 templates/js/translated/order.js:1605
-#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769
+#: templates/js/translated/bom.js:76 templates/js/translated/build.js:381
+#: templates/js/translated/build.js:529 templates/js/translated/build.js:1558
+#: templates/js/translated/order.js:662 templates/js/translated/order.js:1693
+#: templates/js/translated/stock.js:557 templates/js/translated/stock.js:725
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr ""
@@ -3717,8 +3745,8 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:940 templates/js/translated/order.js:1403
-#: templates/js/translated/order.js:1533
+#: templates/js/translated/order.js:1000 templates/js/translated/order.js:1491
+#: templates/js/translated/order.js:1621
msgid "Items"
msgstr ""
@@ -3752,9 +3780,9 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:27
-#: order/templates/order/purchase_order_detail.html:182
+#: order/templates/order/purchase_order_detail.html:166
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:245
+#: order/templates/order/sales_order_detail.html:233
msgid "Add Line Item"
msgstr ""
@@ -3794,7 +3822,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:122
-#: templates/js/translated/order.js:1361
+#: templates/js/translated/order.js:1449
msgid "Customer Reference"
msgstr ""
@@ -3827,7 +3855,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:48
-#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1465
+#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1466
msgid "Actions"
msgstr ""
@@ -3902,31 +3930,31 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:499
+#: part/api.py:502
msgid "Valid"
msgstr ""
-#: part/api.py:500
+#: part/api.py:503
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:505
+#: part/api.py:508
msgid "This option must be selected"
msgstr ""
-#: part/api.py:847
+#: part/api.py:866
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:851
+#: part/api.py:870
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:866
+#: part/api.py:885
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:897 part/api.py:901 part/api.py:916 part/api.py:920
+#: part/api.py:916 part/api.py:920 part/api.py:935 part/api.py:939
msgid "This field is required"
msgstr ""
@@ -3944,7 +3972,7 @@ msgid "Available Stock"
msgstr ""
#: part/bom.py:128 part/templates/part/part_base.html:203
-#: templates/js/translated/part.js:1323
+#: templates/js/translated/part.js:1324
msgid "On Order"
msgstr ""
@@ -3976,7 +4004,7 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:97 part/models.py:2571 part/templates/part/category.html:15
+#: part/models.py:97 part/models.py:2585 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -3993,7 +4021,7 @@ msgstr ""
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:37
-#: templates/js/translated/part.js:1685 templates/navbar.html:21
+#: templates/js/translated/part.js:1686 templates/navbar.html:21
#: templates/stats.html:92 templates/stats.html:101 users/models.py:41
msgid "Parts"
msgstr ""
@@ -4023,7 +4051,7 @@ msgstr ""
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:803 part/models.py:2624
+#: part/models.py:803 part/models.py:2638
msgid "Part name"
msgstr ""
@@ -4056,11 +4084,11 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:841 part/models.py:2321 part/models.py:2570
+#: part/models.py:841 part/models.py:2335 part/models.py:2584
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:223
-#: templates/js/translated/part.js:1290
+#: templates/js/translated/part.js:1291
msgid "Category"
msgstr ""
@@ -4069,8 +4097,8 @@ msgid "Part category"
msgstr ""
#: part/models.py:847 part/templates/part/part_base.html:274
-#: templates/js/translated/part.js:618 templates/js/translated/part.js:1243
-#: templates/js/translated/stock.js:1683
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:1244
+#: templates/js/translated/stock.js:1639
msgid "IPN"
msgstr ""
@@ -4083,7 +4111,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:855 part/templates/part/part_base.html:281
-#: report/models.py:200 templates/js/translated/part.js:622
+#: report/models.py:200 templates/js/translated/part.js:623
msgid "Revision"
msgstr ""
@@ -4175,301 +4203,309 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2371
+#: part/models.py:2385
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2388
+#: part/models.py:2402
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2408 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:1311
+#: part/models.py:2422 templates/js/translated/part.js:1737
+#: templates/js/translated/stock.js:1267
msgid "Test Name"
msgstr ""
-#: part/models.py:2409
+#: part/models.py:2423
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2414
+#: part/models.py:2428
msgid "Test Description"
msgstr ""
-#: part/models.py:2415
+#: part/models.py:2429
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2420 templates/js/translated/part.js:1745
+#: part/models.py:2434 templates/js/translated/part.js:1746
#: templates/js/translated/table_filters.js:276
msgid "Required"
msgstr ""
-#: part/models.py:2421
+#: part/models.py:2435
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2426 templates/js/translated/part.js:1753
+#: part/models.py:2440 templates/js/translated/part.js:1754
msgid "Requires Value"
msgstr ""
-#: part/models.py:2427
+#: part/models.py:2441
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2432 templates/js/translated/part.js:1760
+#: part/models.py:2446 templates/js/translated/part.js:1761
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2433
+#: part/models.py:2447
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2444
+#: part/models.py:2458
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2480
+#: part/models.py:2494
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2488
+#: part/models.py:2502
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2495
+#: part/models.py:2509
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2525
+#: part/models.py:2539
msgid "Parent Part"
msgstr ""
-#: part/models.py:2527 part/models.py:2576 part/models.py:2577
+#: part/models.py:2541 part/models.py:2590 part/models.py:2591
#: templates/InvenTree/settings/settings.html:218
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2529
+#: part/models.py:2543
msgid "Data"
msgstr ""
-#: part/models.py:2529
+#: part/models.py:2543
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2581 templates/InvenTree/settings/settings.html:227
+#: part/models.py:2595 templates/InvenTree/settings/settings.html:227
msgid "Default Value"
msgstr ""
-#: part/models.py:2582
+#: part/models.py:2596
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2616
+#: part/models.py:2630
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2619 templates/js/translated/model_renderers.js:182
+#: part/models.py:2633 templates/js/translated/model_renderers.js:182
msgid "Part ID"
msgstr ""
-#: part/models.py:2620
+#: part/models.py:2634
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2623
+#: part/models.py:2637
msgid "Part Name"
msgstr ""
-#: part/models.py:2627
+#: part/models.py:2641
msgid "Part IPN"
msgstr ""
-#: part/models.py:2628
+#: part/models.py:2642
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2645
msgid "Level"
msgstr ""
-#: part/models.py:2632
+#: part/models.py:2646
msgid "BOM level"
msgstr ""
-#: part/models.py:2692
+#: part/models.py:2707
msgid "Select parent part"
msgstr ""
-#: part/models.py:2700
+#: part/models.py:2715
msgid "Sub part"
msgstr ""
-#: part/models.py:2701
+#: part/models.py:2716
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2707
+#: part/models.py:2722
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2709 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:791 templates/js/translated/bom.js:865
+#: part/models.py:2724 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2709
+#: part/models.py:2724
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2712 part/templates/part/upload_bom.html:55
+#: part/models.py:2727 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2713
+#: part/models.py:2728
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2716
+#: part/models.py:2731
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2719
+#: part/models.py:2734
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2721
+#: part/models.py:2736
msgid "Checksum"
msgstr ""
-#: part/models.py:2721
+#: part/models.py:2736
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2725 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:882
+#: part/models.py:2740 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:880
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2726
+#: part/models.py:2741
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2731 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:874
+#: part/models.py:2746 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:872
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2732
+#: part/models.py:2747
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2817 stock/models.py:394
+#: part/models.py:2832 stock/models.py:446
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2826 part/models.py:2828
+#: part/models.py:2841 part/models.py:2843
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2957
+#: part/models.py:2972
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2979
+#: part/models.py:2994
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2991
+#: part/models.py:3006
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2999
+#: part/models.py:3014
msgid "Substitute part"
msgstr ""
-#: part/models.py:3010
+#: part/models.py:3025
msgid "Part 1"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3029
msgid "Part 2"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3029
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3046
+#: part/models.py:3061
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
-#: part/serializers.py:667
+#: part/serializers.py:670
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:678
+#: part/serializers.py:681
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:679
+#: part/serializers.py:682
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:684
+#: part/serializers.py:687
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:685
+#: part/serializers.py:688
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:690
+#: part/serializers.py:693
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:691
+#: part/serializers.py:694
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:699
+msgid "Copy Substitute Parts"
+msgstr ""
+
+#: part/serializers.py:700
+msgid "Copy substitute parts when duplicate BOM items"
+msgstr ""
+
+#: part/serializers.py:744
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:735
+#: part/serializers.py:745
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:762
+#: part/serializers.py:772
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:805
+#: part/serializers.py:815
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:808
+#: part/serializers.py:818
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:811
+#: part/serializers.py:821
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:820
+#: part/serializers.py:830
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:828
+#: part/serializers.py:838
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:847
+#: part/serializers.py:857
msgid "At least one BOM item is required"
msgstr ""
@@ -4496,7 +4532,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:279
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:274
msgid "BOM actions"
msgstr ""
@@ -4548,7 +4584,7 @@ msgstr ""
msgid "Top level part category"
msgstr ""
-#: part/templates/part/category.html:114 part/templates/part/category.html:205
+#: part/templates/part/category.html:114 part/templates/part/category.html:202
#: part/templates/part/category_sidebar.html:7
msgid "Subcategories"
msgstr ""
@@ -4557,55 +4593,51 @@ msgstr ""
msgid "Parts (Including subcategories)"
msgstr ""
-#: part/templates/part/category.html:156
-msgid "Export Part Data"
-msgstr ""
-
-#: part/templates/part/category.html:157 part/templates/part/category.html:181
-msgid "Export"
-msgstr ""
-
-#: part/templates/part/category.html:160
+#: part/templates/part/category.html:157
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:161 templates/js/translated/bom.js:365
+#: part/templates/part/category.html:158 templates/js/translated/bom.js:365
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:175
+#: part/templates/part/category.html:172
msgid "Set category"
msgstr ""
-#: part/templates/part/category.html:175
+#: part/templates/part/category.html:172
msgid "Set Category"
msgstr ""
-#: part/templates/part/category.html:179
+#: part/templates/part/category.html:176
msgid "Print Labels"
msgstr ""
-#: part/templates/part/category.html:181
+#: part/templates/part/category.html:178
+msgid "Export"
+msgstr ""
+
+#: part/templates/part/category.html:178
msgid "Export Data"
msgstr ""
-#: part/templates/part/category.html:195
+#: part/templates/part/category.html:192
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:288
+#: part/templates/part/category.html:285
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:315
+#: part/templates/part/category.html:305
msgid "Create Part"
msgstr ""
-#: part/templates/part/category.html:318
+#: part/templates/part/category.html:308
msgid "Create another part after this one"
msgstr ""
-#: part/templates/part/category.html:319
+#: part/templates/part/category.html:309
msgid "Part created successfully"
msgstr ""
@@ -4676,155 +4708,150 @@ msgstr ""
msgid "Part Stock"
msgstr ""
-#: part/templates/part/detail.html:33
-#, python-format
-msgid "Showing stock for all variants of %(full_name)s"
-msgstr ""
-
-#: part/templates/part/detail.html:43
+#: part/templates/part/detail.html:38
msgid "Part Stock Allocations"
msgstr ""
-#: part/templates/part/detail.html:60
+#: part/templates/part/detail.html:55
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:65
+#: part/templates/part/detail.html:60
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:122
+#: part/templates/part/detail.html:117
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:168
+#: part/templates/part/detail.html:163
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:172
+#: part/templates/part/detail.html:167
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:173
+#: part/templates/part/detail.html:168
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:200
+#: part/templates/part/detail.html:195
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:237 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:52
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:241 part/templates/part/detail.html:242
+#: part/templates/part/detail.html:236 part/templates/part/detail.html:237
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:262 part/templates/part/part_sidebar.html:18
+#: part/templates/part/detail.html:257 part/templates/part/part_sidebar.html:18
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:267
+#: part/templates/part/detail.html:262
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:271 templates/js/translated/bom.js:283
+#: part/templates/part/detail.html:266 templates/js/translated/bom.js:283
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:268
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:283
+#: part/templates/part/detail.html:278
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:285 templates/js/translated/part.js:272
+#: part/templates/part/detail.html:279 templates/js/translated/part.js:272
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:287
+#: part/templates/part/detail.html:280
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:285
msgid "New BOM Item"
msgstr ""
-#: part/templates/part/detail.html:293
+#: part/templates/part/detail.html:286
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:306
+#: part/templates/part/detail.html:299
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:323
+#: part/templates/part/detail.html:316
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:348
+#: part/templates/part/detail.html:341
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:363
+#: part/templates/part/detail.html:356
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:391
+#: part/templates/part/detail.html:384
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:407
+#: part/templates/part/detail.html:400
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:589
+#: part/templates/part/detail.html:582
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:590
+#: part/templates/part/detail.html:583
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:639
+#: part/templates/part/detail.html:632
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:696
+#: part/templates/part/detail.html:689
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:704
+#: part/templates/part/detail.html:697
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:801
+#: part/templates/part/detail.html:794
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:858
+#: part/templates/part/detail.html:844
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:971
+#: part/templates/part/detail.html:957
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:983
+#: part/templates/part/detail.html:969
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:995
+#: part/templates/part/detail.html:981
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1084
+#: part/templates/part/detail.html:1070
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4969,7 +4996,7 @@ msgstr ""
#: templates/js/translated/company.js:508
#: templates/js/translated/company.js:765
#: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:533 templates/js/translated/part.js:610
+#: templates/js/translated/part.js:534 templates/js/translated/part.js:611
msgid "Inactive"
msgstr ""
@@ -4983,7 +5010,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2356
+#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2444
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5000,12 +5027,12 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:903
+#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:901
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1154
-#: templates/js/translated/part.js:1327
+#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1155
+#: templates/js/translated/part.js:1328
msgid "Building"
msgstr ""
@@ -5057,7 +5084,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:857
+#: templates/js/translated/bom.js:855
msgid "No supplier pricing available"
msgstr ""
@@ -5177,7 +5204,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:851
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849
msgid "Supplier Cost"
msgstr ""
@@ -5199,7 +5226,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1390
+#: part/templates/part/prices.html:215 part/views.py:1325
msgid "Add Internal Price Break"
msgstr ""
@@ -5219,9 +5246,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813
-#: templates/js/translated/part.js:497 templates/js/translated/part.js:1144
-#: templates/js/translated/part.js:1331
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811
+#: templates/js/translated/part.js:498 templates/js/translated/part.js:1145
+#: templates/js/translated/part.js:1332
msgid "No Stock"
msgstr ""
@@ -5275,100 +5302,100 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:172
+#: part/templatetags/inventree_extras.py:174
msgid "Unknown database"
msgstr ""
-#: part/views.py:90
+#: part/views.py:88
msgid "Set Part Category"
msgstr ""
-#: part/views.py:140
+#: part/views.py:138
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:212
+#: part/views.py:210
msgid "Match References"
msgstr ""
-#: part/views.py:509
+#: part/views.py:507
msgid "None"
msgstr ""
-#: part/views.py:568
+#: part/views.py:566
msgid "Part QR Code"
msgstr ""
-#: part/views.py:670
+#: part/views.py:668
msgid "Select Part Image"
msgstr ""
-#: part/views.py:696
+#: part/views.py:694
msgid "Updated part image"
msgstr ""
-#: part/views.py:699
+#: part/views.py:697
msgid "Part image not found"
msgstr ""
-#: part/views.py:850
+#: part/views.py:785
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:857
+#: part/views.py:792
msgid "Part was deleted"
msgstr ""
-#: part/views.py:866
+#: part/views.py:801
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1015
+#: part/views.py:950
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1025
+#: part/views.py:960
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1032
+#: part/views.py:967
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1091 templates/js/translated/part.js:315
+#: part/views.py:1026 templates/js/translated/part.js:315
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1129
+#: part/views.py:1064
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1135
+#: part/views.py:1070
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1144
+#: part/views.py:1079
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1245
+#: part/views.py:1180
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1301
+#: part/views.py:1236
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1323
+#: part/views.py:1258
msgid "Added new price break"
msgstr ""
-#: part/views.py:1399
+#: part/views.py:1334
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1407
+#: part/views.py:1342
msgid "Delete Internal Price Break"
msgstr ""
@@ -5574,12 +5601,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:556 stock/templates/stock/item_base.html:151
-#: templates/js/translated/build.js:373 templates/js/translated/build.js:521
-#: templates/js/translated/build.js:919 templates/js/translated/build.js:1295
+#: stock/models.py:608 stock/templates/stock/item_base.html:151
+#: templates/js/translated/build.js:374 templates/js/translated/build.js:522
+#: templates/js/translated/build.js:920 templates/js/translated/build.js:1296
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:99 templates/js/translated/order.js:2062
-#: templates/js/translated/order.js:2151 templates/js/translated/stock.js:423
+#: templates/js/translated/order.js:99 templates/js/translated/order.js:2150
+#: templates/js/translated/order.js:2239 templates/js/translated/stock.js:422
msgid "Serial Number"
msgstr ""
@@ -5588,19 +5615,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:2052
+#: stock/models.py:2104
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:2058
+#: stock/models.py:2110
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:50
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:924 templates/js/translated/stock.js:2657
+#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2613
msgid "Date"
msgstr ""
@@ -5618,26 +5645,26 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756
-#: templates/js/translated/stock.js:2910
+#: templates/js/translated/stock.js:542 templates/js/translated/stock.js:712
+#: templates/js/translated/stock.js:2866
msgid "Serial"
msgstr ""
-#: stock/api.py:501
+#: stock/api.py:503
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:508
+#: stock/api.py:510
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:533
+#: stock/api.py:535
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/forms.py:74 stock/forms.py:198 stock/models.py:613
+#: stock/forms.py:74 stock/forms.py:198 stock/models.py:665
#: stock/templates/stock/item_base.html:188
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1791
msgid "Expiry Date"
msgstr ""
@@ -5677,228 +5704,228 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:62 stock/models.py:650
+#: stock/models.py:62 stock/models.py:702
#: stock/templates/stock/item_base.html:402
msgid "Owner"
msgstr ""
-#: stock/models.py:63 stock/models.py:651
+#: stock/models.py:63 stock/models.py:703
msgid "Select Owner"
msgstr ""
-#: stock/models.py:375
+#: stock/models.py:427
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:463
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:421 stock/models.py:430
+#: stock/models.py:473 stock/models.py:482
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:422
+#: stock/models.py:474
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:444
+#: stock/models.py:496
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:450
+#: stock/models.py:502
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:457
+#: stock/models.py:509
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:500
+#: stock/models.py:552
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:509
+#: stock/models.py:561
msgid "Base part"
msgstr ""
-#: stock/models.py:517
+#: stock/models.py:569
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:523 stock/templates/stock/location.html:16
+#: stock/models.py:575 stock/templates/stock/location.html:16
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:526
+#: stock/models.py:578
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:585
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:539 stock/templates/stock/item_base.html:277
+#: stock/models.py:591 stock/templates/stock/item_base.html:277
msgid "Installed In"
msgstr ""
-#: stock/models.py:542
+#: stock/models.py:594
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:558
+#: stock/models.py:610
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:572
+#: stock/models.py:624
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:576
+#: stock/models.py:628
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:585
+#: stock/models.py:637
msgid "Source Build"
msgstr ""
-#: stock/models.py:587
+#: stock/models.py:639
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:598
+#: stock/models.py:650
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:601
+#: stock/models.py:653
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:607
+#: stock/models.py:659
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:614
+#: stock/models.py:666
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:627
+#: stock/models.py:679
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:627
+#: stock/models.py:679
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:637 stock/templates/stock/item.html:121
+#: stock/models.py:689 stock/templates/stock/item.html:121
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:646
+#: stock/models.py:698
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1171
+#: stock/models.py:1223
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1177
+#: stock/models.py:1229
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1183
+#: stock/models.py:1235
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1186
+#: stock/models.py:1238
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1189
+#: stock/models.py:1241
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1196
+#: stock/models.py:1248
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1267
+#: stock/models.py:1319
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1270
+#: stock/models.py:1322
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1273
+#: stock/models.py:1325
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1276
+#: stock/models.py:1328
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1279
+#: stock/models.py:1331
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1282
+#: stock/models.py:1334
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1289 stock/serializers.py:832
+#: stock/models.py:1341 stock/serializers.py:832
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1293
+#: stock/models.py:1345
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1297
+#: stock/models.py:1349
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1301
+#: stock/models.py:1353
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1473
+#: stock/models.py:1525
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1972
+#: stock/models.py:2024
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2029
+#: stock/models.py:2081
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2035
+#: stock/models.py:2087
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2053
+#: stock/models.py:2105
msgid "Test name"
msgstr ""
-#: stock/models.py:2059
+#: stock/models.py:2111
msgid "Test result"
msgstr ""
-#: stock/models.py:2065
+#: stock/models.py:2117
msgid "Test output value"
msgstr ""
-#: stock/models.py:2072
+#: stock/models.py:2124
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2078
+#: stock/models.py:2130
msgid "Test notes"
msgstr ""
@@ -5935,7 +5962,7 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:363 stock/views.py:1127
+#: stock/serializers.py:363 stock/views.py:1009
msgid "Serial numbers already exist"
msgstr ""
@@ -6052,11 +6079,11 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:147 templates/js/translated/stock.js:3019
+#: stock/templates/stock/item.html:147 templates/js/translated/stock.js:2975
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1479
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1435
msgid "Add Test Result"
msgstr ""
@@ -6070,7 +6097,7 @@ msgstr ""
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:46 templates/stock_table.html:24
+#: stock/templates/stock/item_base.html:46 templates/stock_table.html:21
msgid "Scan to Location"
msgstr ""
@@ -6083,15 +6110,15 @@ msgid "Stock adjustment actions"
msgstr ""
#: stock/templates/stock/item_base.html:69
-#: stock/templates/stock/location.html:52 templates/stock_table.html:50
+#: stock/templates/stock/location.html:52 templates/stock_table.html:47
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48
+#: stock/templates/stock/item_base.html:72 templates/stock_table.html:45
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49
+#: stock/templates/stock/item_base.html:75 templates/stock_table.html:46
msgid "Remove stock"
msgstr ""
@@ -6100,11 +6127,11 @@ msgid "Serialize stock"
msgstr ""
#: stock/templates/stock/item_base.html:82
-#: stock/templates/stock/location.html:58 templates/stock_table.html:51
+#: stock/templates/stock/location.html:58 templates/stock_table.html:48
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85 templates/stock_table.html:54
+#: stock/templates/stock/item_base.html:85 templates/stock_table.html:51
msgid "Assign to customer"
msgstr ""
@@ -6181,7 +6208,7 @@ msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:201
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1807
msgid "Last Updated"
msgstr ""
@@ -6218,7 +6245,7 @@ msgid "This stock item is serialized - it has a unique serial number and the qua
msgstr ""
#: stock/templates/stock/item_base.html:296
-#: templates/js/translated/build.js:1317
+#: templates/js/translated/build.js:1318
msgid "No location set"
msgstr ""
@@ -6320,11 +6347,11 @@ msgstr ""
msgid "Stock Locations"
msgstr ""
-#: stock/templates/stock/location.html:185 templates/stock_table.html:30
+#: stock/templates/stock/location.html:185 templates/stock_table.html:27
msgid "Printing Actions"
msgstr ""
-#: stock/templates/stock/location.html:189 templates/stock_table.html:34
+#: stock/templates/stock/location.html:189 templates/stock_table.html:31
msgid "Print labels"
msgstr ""
@@ -6348,7 +6375,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:749
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:631
msgid "Convert Stock Item"
msgstr ""
@@ -6369,95 +6396,95 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181 templates/js/translated/stock.js:139
+#: stock/views.py:152 templates/js/translated/stock.js:138
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:728 stock/views.py:854 stock/views.py:1136
+#: stock/views.py:259 stock/views.py:610 stock/views.py:736 stock/views.py:1018
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:274
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:293
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:302
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:342
+#: stock/views.py:313
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:353
+#: stock/views.py:324
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:370
+#: stock/views.py:341
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:371
+#: stock/views.py:342
msgid "Check the confirmation box"
msgstr ""
-#: stock/views.py:475
+#: stock/views.py:357
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:500
+#: stock/views.py:382
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:597 templates/js/translated/stock.js:1074
+#: stock/views.py:479 templates/js/translated/stock.js:1030
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:608
+#: stock/views.py:490
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:630 templates/js/translated/stock.js:332
+#: stock/views.py:512 templates/js/translated/stock.js:331
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:780
+#: stock/views.py:662
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:881
+#: stock/views.py:763
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1023 templates/js/translated/stock.js:312
+#: stock/views.py:905 templates/js/translated/stock.js:311
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1105
+#: stock/views.py:987
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1205
+#: stock/views.py:1087
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1218
+#: stock/views.py:1100
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1229
+#: stock/views.py:1111
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1236
+#: stock/views.py:1118
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1245
+#: stock/views.py:1127
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -7381,14 +7408,14 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1335
+#: templates/js/translated/bom.js:1340
msgid "Required Quantity"
msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:804 templates/js/translated/build.js:1411
-#: templates/js/translated/build.js:2057
+#: templates/js/translated/bom.js:802 templates/js/translated/build.js:1412
+#: templates/js/translated/build.js:2110
#: templates/js/translated/table_filters.js:178
msgid "Available"
msgstr ""
@@ -7580,7 +7607,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:982
msgid "Remove stock item"
msgstr ""
@@ -7635,12 +7662,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286
-#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518
+#: templates/js/translated/order.js:429 templates/js/translated/tables.js:53
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519
+#: templates/js/translated/order.js:430
msgid "Select file format"
msgstr ""
@@ -7716,275 +7743,307 @@ msgstr ""
msgid "Edit BOM Item Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:741
+#: templates/js/translated/bom.js:739
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:745 templates/js/translated/build.js:1393
+#: templates/js/translated/bom.js:743 templates/js/translated/build.js:1394
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:750
+#: templates/js/translated/bom.js:748
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:822
+#: templates/js/translated/bom.js:820
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:837
+#: templates/js/translated/bom.js:835
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:844
+#: templates/js/translated/bom.js:842
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:893 templates/js/translated/bom.js:982
+#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:953
+#: templates/js/translated/bom.js:951
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:955
+#: templates/js/translated/bom.js:953
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:957
+#: templates/js/translated/bom.js:955
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138
+#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:961 templates/js/translated/bom.js:1121
+#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1060 templates/js/translated/build.js:1137
+#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1138
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1116
+#: templates/js/translated/bom.js:1121
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:1318 templates/js/translated/build.js:1377
+#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1378
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1340
+#: templates/js/translated/bom.js:1345
msgid "Inherited from parent BOM"
msgstr ""
-#: templates/js/translated/build.js:85
+#: templates/js/translated/build.js:86
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:119
+#: templates/js/translated/build.js:120
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:140
+#: templates/js/translated/build.js:141
msgid "Build order is ready to be completed"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:146
msgid "Build Order is incomplete"
msgstr ""
-#: templates/js/translated/build.js:173
+#: templates/js/translated/build.js:174
msgid "Complete Build Order"
msgstr ""
-#: templates/js/translated/build.js:214 templates/js/translated/stock.js:92
-#: templates/js/translated/stock.js:181
+#: templates/js/translated/build.js:215 templates/js/translated/stock.js:91
+#: templates/js/translated/stock.js:180
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:216 templates/js/translated/stock.js:94
-#: templates/js/translated/stock.js:183
+#: templates/js/translated/build.js:217 templates/js/translated/stock.js:93
+#: templates/js/translated/stock.js:182
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/build.js:225
+#: templates/js/translated/build.js:226
msgid "The Bill of Materials contains trackable parts"
msgstr ""
-#: templates/js/translated/build.js:226
+#: templates/js/translated/build.js:227
msgid "Build outputs must be generated individually"
msgstr ""
-#: templates/js/translated/build.js:234
+#: templates/js/translated/build.js:235
msgid "Trackable parts can have serial numbers specified"
msgstr ""
-#: templates/js/translated/build.js:235
+#: templates/js/translated/build.js:236
msgid "Enter serial numbers to generate multiple single build outputs"
msgstr ""
-#: templates/js/translated/build.js:242
+#: templates/js/translated/build.js:243
msgid "Create Build Output"
msgstr ""
-#: templates/js/translated/build.js:273
+#: templates/js/translated/build.js:274
msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:284
+#: templates/js/translated/build.js:285
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:293
+#: templates/js/translated/build.js:294
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:301
+#: templates/js/translated/build.js:302
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:324
+#: templates/js/translated/build.js:325
msgid "Are you sure you wish to unallocate stock items from this build?"
msgstr ""
-#: templates/js/translated/build.js:342
+#: templates/js/translated/build.js:343
msgid "Unallocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:360 templates/js/translated/build.js:508
+#: templates/js/translated/build.js:361 templates/js/translated/build.js:509
msgid "Select Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:361 templates/js/translated/build.js:509
+#: templates/js/translated/build.js:362 templates/js/translated/build.js:510
msgid "At least one build output must be selected"
msgstr ""
-#: templates/js/translated/build.js:415 templates/js/translated/build.js:563
+#: templates/js/translated/build.js:416 templates/js/translated/build.js:564
msgid "Output"
msgstr ""
-#: templates/js/translated/build.js:431
+#: templates/js/translated/build.js:432
msgid "Complete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:576
+#: templates/js/translated/build.js:577
msgid "Delete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:665
+#: templates/js/translated/build.js:666
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:703 templates/js/translated/order.js:1965
+#: templates/js/translated/build.js:704 templates/js/translated/order.js:2053
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:885
+#: templates/js/translated/build.js:886
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1334 templates/js/translated/build.js:2068
-#: templates/js/translated/order.js:2099
+#: templates/js/translated/build.js:1335 templates/js/translated/build.js:2121
+#: templates/js/translated/order.js:2187
msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1336 templates/js/translated/build.js:2069
-#: templates/js/translated/order.js:2100
+#: templates/js/translated/build.js:1337 templates/js/translated/build.js:2122
+#: templates/js/translated/order.js:2188
msgid "Delete stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1354
+#: templates/js/translated/build.js:1355
msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:1364
+#: templates/js/translated/build.js:1365
msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:1389
+#: templates/js/translated/build.js:1390
msgid "Substitute parts available"
msgstr ""
-#: templates/js/translated/build.js:1406
+#: templates/js/translated/build.js:1407
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1416 templates/js/translated/build.js:1656
-#: templates/js/translated/build.js:2064 templates/js/translated/order.js:2366
+#: templates/js/translated/build.js:1417 templates/js/translated/build.js:1667
+#: templates/js/translated/build.js:2117 templates/js/translated/order.js:2454
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1472 templates/js/translated/order.js:2446
+#: templates/js/translated/build.js:1473 templates/js/translated/order.js:2534
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:1476 templates/stock_table.html:53
+#: templates/js/translated/build.js:1477 templates/stock_table.html:50
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1479 templates/js/translated/order.js:2439
+#: templates/js/translated/build.js:1480 templates/js/translated/order.js:2527
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:1558 templates/js/translated/order.js:1616
-msgid "Specify stock allocation quantity"
-msgstr ""
-
-#: templates/js/translated/build.js:1629 templates/js/translated/label.js:134
-#: templates/js/translated/order.js:1667 templates/js/translated/report.js:225
+#: templates/js/translated/build.js:1519 templates/js/translated/label.js:134
+#: templates/js/translated/order.js:1755 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1630 templates/js/translated/order.js:1668
+#: templates/js/translated/build.js:1520 templates/js/translated/order.js:1756
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:1644 templates/js/translated/order.js:1682
+#: templates/js/translated/build.js:1569 templates/js/translated/order.js:1704
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:1640
+msgid "All Parts Allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:1641
+msgid "All selected parts have been fully allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:1655 templates/js/translated/order.js:1770
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1717
+#: templates/js/translated/build.js:1684 templates/js/translated/order.js:1805
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1674
+#: templates/js/translated/build.js:1685
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1730
+#: templates/js/translated/build.js:1696 templates/js/translated/order.js:1818
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1757 templates/js/translated/order.js:1807
+#: templates/js/translated/build.js:1768 templates/js/translated/order.js:1895
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1875
+#: templates/js/translated/build.js:1865
+msgid "Automatic Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1866
+msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
+msgstr ""
+
+#: templates/js/translated/build.js:1868
+msgid "If a location is specifed, stock will only be allocated from that location"
+msgstr ""
+
+#: templates/js/translated/build.js:1869
+msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
+msgstr ""
+
+#: templates/js/translated/build.js:1870
+msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
+msgstr ""
+
+#: templates/js/translated/build.js:1890
+msgid "Allocate Stock Items"
+msgstr ""
+
+#: templates/js/translated/build.js:1928
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1892 templates/js/translated/part.js:1235
-#: templates/js/translated/part.js:1646 templates/js/translated/stock.js:1643
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/build.js:1945 templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1647 templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:2567
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1912
+#: templates/js/translated/build.js:1965
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1976 templates/js/translated/stock.js:2823
+#: templates/js/translated/build.js:2029 templates/js/translated/stock.js:2779
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1988
+#: templates/js/translated/build.js:2041
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:2045
+#: templates/js/translated/build.js:2098
msgid "No parts allocated for"
msgstr ""
@@ -8049,34 +8108,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:517
-#: templates/js/translated/part.js:602
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:518
+#: templates/js/translated/part.js:603
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:521
-#: templates/js/translated/part.js:606
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:522
+#: templates/js/translated/part.js:607
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:696
+#: templates/js/translated/company.js:631 templates/js/translated/part.js:697
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:738
+#: templates/js/translated/company.js:668 templates/js/translated/part.js:739
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:739
+#: templates/js/translated/company.js:669 templates/js/translated/part.js:740
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:756
+#: templates/js/translated/company.js:688 templates/js/translated/part.js:757
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:768
+#: templates/js/translated/company.js:699 templates/js/translated/part.js:769
msgid "Delete Parameter"
msgstr ""
@@ -8085,12 +8144,12 @@ msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:429
+#: templates/js/translated/filters.js:441
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:430
+#: templates/js/translated/filters.js:442
msgid "false"
msgstr ""
@@ -8098,19 +8157,23 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:286
+#: templates/js/translated/filters.js:288
+msgid "Download data"
+msgstr ""
+
+#: templates/js/translated/filters.js:291
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:290
+#: templates/js/translated/filters.js:295
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:293
+#: templates/js/translated/filters.js:298
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:338
+#: templates/js/translated/filters.js:350
msgid "Create filter"
msgstr ""
@@ -8181,7 +8244,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1050
+#: templates/js/translated/stock.js:1006
msgid "Select Stock Items"
msgstr ""
@@ -8354,206 +8417,214 @@ msgstr ""
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:366
+#: templates/js/translated/order.js:426
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:460
+#: templates/js/translated/order.js:520
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:461
+#: templates/js/translated/order.js:521
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:481 templates/js/translated/order.js:580
+#: templates/js/translated/order.js:541 templates/js/translated/order.js:640
msgid "Add batch code"
msgstr ""
-#: templates/js/translated/order.js:487 templates/js/translated/order.js:591
+#: templates/js/translated/order.js:547 templates/js/translated/order.js:651
msgid "Add serial numbers"
msgstr ""
-#: templates/js/translated/order.js:499
+#: templates/js/translated/order.js:559
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:563 templates/js/translated/stock.js:2263
+#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2219
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:652
+#: templates/js/translated/order.js:712
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:653
+#: templates/js/translated/order.js:713
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:655
+#: templates/js/translated/order.js:715
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/order.js:674
+#: templates/js/translated/order.js:734
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:675
+#: templates/js/translated/order.js:735
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:865 templates/js/translated/part.js:809
+#: templates/js/translated/order.js:925 templates/js/translated/part.js:810
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:890 templates/js/translated/order.js:1338
+#: templates/js/translated/order.js:950 templates/js/translated/order.js:1426
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:1018 templates/js/translated/order.js:2496
+#: templates/js/translated/order.js:1074 templates/js/translated/order.js:2585
+msgid "Duplicate Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:1104 templates/js/translated/order.js:2607
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1030 templates/js/translated/order.js:2507
+#: templates/js/translated/order.js:1117 templates/js/translated/order.js:2618
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:1073
+#: templates/js/translated/order.js:1160
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:1100 templates/js/translated/order.js:2255
+#: templates/js/translated/order.js:1187 templates/js/translated/order.js:2343
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:1154 templates/js/translated/order.js:2280
-#: templates/js/translated/part.js:1863 templates/js/translated/part.js:2074
+#: templates/js/translated/order.js:1241 templates/js/translated/order.js:2368
+#: templates/js/translated/part.js:1864 templates/js/translated/part.js:2075
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1169 templates/js/translated/order.js:2296
+#: templates/js/translated/order.js:1256 templates/js/translated/order.js:2384
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:1210 templates/js/translated/order.js:2338
-#: templates/js/translated/part.js:918
+#: templates/js/translated/order.js:1297 templates/js/translated/order.js:2426
+#: templates/js/translated/part.js:919
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:1269 templates/js/translated/part.js:964
+#: templates/js/translated/order.js:1356 templates/js/translated/part.js:965
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1273 templates/js/translated/order.js:2452
+#: templates/js/translated/order.js:1360 templates/js/translated/order.js:2540
+msgid "Duplicate line item"
+msgstr ""
+
+#: templates/js/translated/order.js:1361 templates/js/translated/order.js:2541
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:1274 templates/js/translated/order.js:2456
+#: templates/js/translated/order.js:1362 templates/js/translated/order.js:2545
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1314
+#: templates/js/translated/order.js:1402
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1352
+#: templates/js/translated/order.js:1440
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1439
+#: templates/js/translated/order.js:1527
msgid "Edit shipment"
msgstr ""
-#: templates/js/translated/order.js:1442
+#: templates/js/translated/order.js:1530
msgid "Complete shipment"
msgstr ""
-#: templates/js/translated/order.js:1447
+#: templates/js/translated/order.js:1535
msgid "Delete shipment"
msgstr ""
-#: templates/js/translated/order.js:1467
+#: templates/js/translated/order.js:1555
msgid "Edit Shipment"
msgstr ""
-#: templates/js/translated/order.js:1484
+#: templates/js/translated/order.js:1572
msgid "Delete Shipment"
msgstr ""
-#: templates/js/translated/order.js:1518
+#: templates/js/translated/order.js:1606
msgid "No matching shipments found"
msgstr ""
-#: templates/js/translated/order.js:1528
+#: templates/js/translated/order.js:1616
msgid "Shipment Reference"
msgstr ""
-#: templates/js/translated/order.js:1552
+#: templates/js/translated/order.js:1640
msgid "Not shipped"
msgstr ""
-#: templates/js/translated/order.js:1558
+#: templates/js/translated/order.js:1646
msgid "Tracking"
msgstr ""
-#: templates/js/translated/order.js:1718
+#: templates/js/translated/order.js:1806
msgid "Allocate Stock Items to Sales Order"
msgstr ""
-#: templates/js/translated/order.js:1926
+#: templates/js/translated/order.js:2014
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:2015
+#: templates/js/translated/order.js:2103
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:2032
+#: templates/js/translated/order.js:2120
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:2033
+#: templates/js/translated/order.js:2121
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:2076 templates/js/translated/order.js:2165
-#: templates/js/translated/stock.js:1559
+#: templates/js/translated/order.js:2164 templates/js/translated/order.js:2253
+#: templates/js/translated/stock.js:1515
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/order.js:2084 templates/js/translated/order.js:2174
+#: templates/js/translated/order.js:2172 templates/js/translated/order.js:2262
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:2436
+#: templates/js/translated/order.js:2524
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:2442
+#: templates/js/translated/order.js:2530
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:2449 templates/js/translated/order.js:2616
+#: templates/js/translated/order.js:2537 templates/js/translated/order.js:2727
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:2460
+#: templates/js/translated/order.js:2549
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:2463
+#: templates/js/translated/order.js:2552
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:2522
+#: templates/js/translated/order.js:2633
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:2624
+#: templates/js/translated/order.js:2735
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:2638
+#: templates/js/translated/order.js:2749
msgid "No matching line items"
msgstr ""
@@ -8677,117 +8748,117 @@ msgstr ""
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:481
+#: templates/js/translated/part.js:482
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:509 templates/js/translated/part.js:594
+#: templates/js/translated/part.js:510 templates/js/translated/part.js:595
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:513 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:514 templates/js/translated/part.js:599
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:525
+#: templates/js/translated/part.js:526
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:529
+#: templates/js/translated/part.js:530
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:644
+#: templates/js/translated/part.js:645
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1034
+#: templates/js/translated/part.js:1035
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1058
+#: templates/js/translated/part.js:1059
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1125 templates/js/translated/part.js:1385
+#: templates/js/translated/part.js:1126 templates/js/translated/part.js:1386
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1295
+#: templates/js/translated/part.js:1296
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1318
+#: templates/js/translated/part.js:1319
#: templates/js/translated/table_filters.js:425
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1409 templates/js/translated/part.js:1581
-#: templates/js/translated/stock.js:2572
+#: templates/js/translated/part.js:1410 templates/js/translated/part.js:1582
+#: templates/js/translated/stock.js:2528
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1425
+#: templates/js/translated/part.js:1426
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1600 templates/js/translated/stock.js:2591
+#: templates/js/translated/part.js:1601 templates/js/translated/stock.js:2547
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1664
+#: templates/js/translated/part.js:1665
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1678 templates/js/translated/stock.js:2635
+#: templates/js/translated/part.js:1679 templates/js/translated/stock.js:2591
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1722
+#: templates/js/translated/part.js:1723
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1773 templates/js/translated/stock.js:1270
+#: templates/js/translated/part.js:1774 templates/js/translated/stock.js:1226
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1774 templates/js/translated/stock.js:1271
-#: templates/js/translated/stock.js:1517
+#: templates/js/translated/part.js:1775 templates/js/translated/stock.js:1227
+#: templates/js/translated/stock.js:1473
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1780
+#: templates/js/translated/part.js:1781
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1802
+#: templates/js/translated/part.js:1803
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1816
+#: templates/js/translated/part.js:1817
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1841
+#: templates/js/translated/part.js:1842
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1896
+#: templates/js/translated/part.js:1897
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1897
+#: templates/js/translated/part.js:1898
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1998
+#: templates/js/translated/part.js:1999
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:2017
+#: templates/js/translated/part.js:2018
msgid "Single Price Difference"
msgstr ""
@@ -8861,368 +8932,356 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:102
+#: templates/js/translated/stock.js:101
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:111
+#: templates/js/translated/stock.js:110
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:154
+#: templates/js/translated/stock.js:153
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:194
+#: templates/js/translated/stock.js:193
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:233
+#: templates/js/translated/stock.js:232
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/stock.js:238
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:381
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:395
+#: templates/js/translated/stock.js:394
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:420
+#: templates/js/translated/stock.js:419
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425
+#: templates/js/translated/stock.js:423 templates/js/translated/stock.js:424
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:441
+#: templates/js/translated/stock.js:440
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:461
+#: templates/js/translated/stock.js:460
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:470
+#: templates/js/translated/stock.js:469
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:515
-msgid "Export Stock"
-msgstr ""
-
-#: templates/js/translated/stock.js:526
-msgid "Include Sublocations"
-msgstr ""
-
-#: templates/js/translated/stock.js:527
-msgid "Include stock items in sublocations"
-msgstr ""
-
-#: templates/js/translated/stock.js:636
+#: templates/js/translated/stock.js:592
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:637
+#: templates/js/translated/stock.js:593
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:714
+#: templates/js/translated/stock.js:670
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:715
+#: templates/js/translated/stock.js:671
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:717
+#: templates/js/translated/stock.js:673
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:718
+#: templates/js/translated/stock.js:674
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:804
+#: templates/js/translated/stock.js:760
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:805
+#: templates/js/translated/stock.js:761
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:900
+#: templates/js/translated/stock.js:856
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:901
+#: templates/js/translated/stock.js:857
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:907
+#: templates/js/translated/stock.js:863
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:908
+#: templates/js/translated/stock.js:864
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:912
+#: templates/js/translated/stock.js:868
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:913
+#: templates/js/translated/stock.js:869
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:917
+#: templates/js/translated/stock.js:873
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:918 users/models.py:213
+#: templates/js/translated/stock.js:874 users/models.py:213
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:922
+#: templates/js/translated/stock.js:878
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1011
+#: templates/js/translated/stock.js:967
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1011
+#: templates/js/translated/stock.js:967
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1051
+#: templates/js/translated/stock.js:1007
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1209
+#: templates/js/translated/stock.js:1165
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1211
+#: templates/js/translated/stock.js:1167
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1216
+#: templates/js/translated/stock.js:1172
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1263
+#: templates/js/translated/stock.js:1219
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1266
+#: templates/js/translated/stock.js:1222
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1292
+#: templates/js/translated/stock.js:1248
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1348
+#: templates/js/translated/stock.js:1304
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1500
+#: templates/js/translated/stock.js:1456
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1522
+#: templates/js/translated/stock.js:1478
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1551
+#: templates/js/translated/stock.js:1507
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1511
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1563
+#: templates/js/translated/stock.js:1519
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1569
+#: templates/js/translated/stock.js:1525
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1727
+#: templates/js/translated/stock.js:1683
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1732
+#: templates/js/translated/stock.js:1688
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1691
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1739
+#: templates/js/translated/stock.js:1695
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1741
+#: templates/js/translated/stock.js:1697
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1747
+#: templates/js/translated/stock.js:1703
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1749
+#: templates/js/translated/stock.js:1705
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1751
+#: templates/js/translated/stock.js:1707
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1756
+#: templates/js/translated/stock.js:1712
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1763
+#: templates/js/translated/stock.js:1719
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1765
+#: templates/js/translated/stock.js:1721
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1767
+#: templates/js/translated/stock.js:1723
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1771
+#: templates/js/translated/stock.js:1727
#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1821
+#: templates/js/translated/stock.js:1777
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1903
+#: templates/js/translated/stock.js:1859
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1941
+#: templates/js/translated/stock.js:1897
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1962 templates/js/translated/stock.js:2010
+#: templates/js/translated/stock.js:1918 templates/js/translated/stock.js:1966
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:2050
+#: templates/js/translated/stock.js:2006
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:2077
+#: templates/js/translated/stock.js:2033
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:2079
+#: templates/js/translated/stock.js:2035
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:2278
+#: templates/js/translated/stock.js:2234
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2292
+#: templates/js/translated/stock.js:2248
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2293
+#: templates/js/translated/stock.js:2249
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2472
+#: templates/js/translated/stock.js:2428
msgid "Allocated Quantity"
msgstr ""
-#: templates/js/translated/stock.js:2682
+#: templates/js/translated/stock.js:2638
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2707
+#: templates/js/translated/stock.js:2663
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2726
+#: templates/js/translated/stock.js:2682
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2745
+#: templates/js/translated/stock.js:2701
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2763
+#: templates/js/translated/stock.js:2719
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2786
+#: templates/js/translated/stock.js:2742
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2794
+#: templates/js/translated/stock.js:2750
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2835
+#: templates/js/translated/stock.js:2791
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2836
+#: templates/js/translated/stock.js:2792
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2887
+#: templates/js/translated/stock.js:2843
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2938
+#: templates/js/translated/stock.js:2894
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2974
+#: templates/js/translated/stock.js:2930
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2975
+#: templates/js/translated/stock.js:2931
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2977
+#: templates/js/translated/stock.js:2933
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2978
+#: templates/js/translated/stock.js:2934
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2979
+#: templates/js/translated/stock.js:2935
msgid "The Stock Item is serialized and does not belong to another item"
msgstr ""
-#: templates/js/translated/stock.js:2992
+#: templates/js/translated/stock.js:2948
msgid "Select part to install"
msgstr ""
@@ -9429,60 +9488,68 @@ msgstr ""
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:368
+#: templates/js/translated/tables.js:50
+msgid "Export Table Data"
+msgstr ""
+
+#: templates/js/translated/tables.js:54
+msgid "Select File Format"
+msgstr ""
+
+#: templates/js/translated/tables.js:433
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:371
+#: templates/js/translated/tables.js:436
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:376
+#: templates/js/translated/tables.js:441
msgid "Showing all rows"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:382 templates/search_form.html:6
+#: templates/js/translated/tables.js:447 templates/search_form.html:6
#: templates/search_form.html:7
msgid "Search"
msgstr ""
-#: templates/js/translated/tables.js:385
+#: templates/js/translated/tables.js:450
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:388
+#: templates/js/translated/tables.js:453
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:391
+#: templates/js/translated/tables.js:456
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:394
+#: templates/js/translated/tables.js:459
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:397
+#: templates/js/translated/tables.js:462
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:400
+#: templates/js/translated/tables.js:465
msgid "All"
msgstr ""
@@ -9586,63 +9653,59 @@ msgstr ""
msgid "Email settings not configured"
msgstr ""
-#: templates/stock_table.html:14
-msgid "Export Stock Information"
-msgstr ""
-
-#: templates/stock_table.html:20
+#: templates/stock_table.html:17
msgid "Barcode Actions"
msgstr ""
-#: templates/stock_table.html:36
+#: templates/stock_table.html:33
msgid "Print test reports"
msgstr ""
-#: templates/stock_table.html:43
+#: templates/stock_table.html:40
msgid "Stock Options"
msgstr ""
-#: templates/stock_table.html:48
+#: templates/stock_table.html:45
msgid "Add to selected stock items"
msgstr ""
-#: templates/stock_table.html:49
+#: templates/stock_table.html:46
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:50
+#: templates/stock_table.html:47
msgid "Stocktake selected stock items"
msgstr ""
-#: templates/stock_table.html:51
+#: templates/stock_table.html:48
msgid "Move selected stock items"
msgstr ""
-#: templates/stock_table.html:52
+#: templates/stock_table.html:49
msgid "Merge selected stock items"
msgstr ""
-#: templates/stock_table.html:52
+#: templates/stock_table.html:49
msgid "Merge stock"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:50
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:52
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:52
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:55
msgid "Delete selected items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:55
msgid "Delete stock"
msgstr ""
diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.po b/InvenTree/locale/ru/LC_MESSAGES/django.po
index e8f062d59f..66adf93267 100644
--- a/InvenTree/locale/ru/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ru/LC_MESSAGES/django.po
@@ -1,10 +1,10 @@
-#: templates/js/translated/order.js:2090
+#: templates/js/translated/order.js:2178
msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-03-01 13:34+0000\n"
-"PO-Revision-Date: 2022-03-01 14:09\n"
+"POT-Creation-Date: 2022-03-07 04:31+0000\n"
+"PO-Revision-Date: 2022-03-07 04:47\n"
"Last-Translator: \n"
"Language-Team: Russian\n"
"Language: ru_RU\n"
@@ -86,7 +86,7 @@ msgid "Duplicate serial: {sn}"
msgstr ""
#: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435
-#: stock/views.py:1101
+#: stock/views.py:983
msgid "Invalid quantity provided"
msgstr "недопустимое количество"
@@ -114,100 +114,100 @@ msgstr "Серийных номеров не найдено"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Число уникальных серийных номеров ({s}) должно соответствовать количеству ({q})"
-#: InvenTree/models.py:176
+#: InvenTree/models.py:185
msgid "Missing file"
msgstr "Файл не найден"
-#: InvenTree/models.py:177
+#: InvenTree/models.py:186
msgid "Missing external link"
msgstr "Отсутствует внешняя ссылка"
-#: InvenTree/models.py:188 stock/models.py:2071
+#: InvenTree/models.py:197 stock/models.py:2123
#: templates/js/translated/attachment.js:119
msgid "Attachment"
msgstr "Вложения"
-#: InvenTree/models.py:189
+#: InvenTree/models.py:198
msgid "Select file to attach"
msgstr "Выберите файл для вложения"
-#: InvenTree/models.py:195 company/models.py:131 company/models.py:348
+#: InvenTree/models.py:204 company/models.py:131 company/models.py:348
#: company/models.py:564 order/models.py:127 part/models.py:860
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1346
+#: templates/js/translated/company.js:829 templates/js/translated/part.js:1347
msgid "Link"
msgstr "Ссылка"
-#: InvenTree/models.py:196 build/models.py:330 part/models.py:861
-#: stock/models.py:566
+#: InvenTree/models.py:205 build/models.py:332 part/models.py:861
+#: stock/models.py:618
msgid "Link to external URL"
msgstr "Ссылка на внешний URL"
-#: InvenTree/models.py:199 templates/js/translated/attachment.js:163
+#: InvenTree/models.py:208 templates/js/translated/attachment.js:163
msgid "Comment"
msgstr "Комментарий"
-#: InvenTree/models.py:199
+#: InvenTree/models.py:208
msgid "File comment"
msgstr "Комментарий к файлу"
-#: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1277
+#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1277
#: common/models.py:1278 common/models.py:1506 common/models.py:1507
-#: part/models.py:2303 part/models.py:2323
+#: part/models.py:2317 part/models.py:2337
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2817
+#: templates/js/translated/stock.js:2773
msgid "User"
msgstr "Пользователь"
-#: InvenTree/models.py:209
+#: InvenTree/models.py:218
msgid "upload date"
msgstr "дата загрузки"
-#: InvenTree/models.py:232
+#: InvenTree/models.py:241
msgid "Filename must not be empty"
msgstr "Имя файла не должно быть пустым"
-#: InvenTree/models.py:255
+#: InvenTree/models.py:264
msgid "Invalid attachment directory"
msgstr "Неверная директория вложений"
-#: InvenTree/models.py:265
+#: InvenTree/models.py:274
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Имя файла содержит запрещенные символы '{c}'"
-#: InvenTree/models.py:268
+#: InvenTree/models.py:277
msgid "Filename missing extension"
msgstr "Отсутствует расширение для имени файла"
-#: InvenTree/models.py:275
+#: InvenTree/models.py:284
msgid "Attachment with this filename already exists"
msgstr "Вложение с таким именем файла уже существует"
-#: InvenTree/models.py:282
+#: InvenTree/models.py:291
msgid "Error renaming file"
msgstr "Ошибка переименования файла"
-#: InvenTree/models.py:317
+#: InvenTree/models.py:326
msgid "Invalid choice"
msgstr "Неверный выбор"
-#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1492
+#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1492
#: company/models.py:415 label/models.py:112 part/models.py:804
-#: part/models.py:2487 plugin/models.py:40 report/models.py:181
+#: part/models.py:2501 plugin/models.py:40 report/models.py:181
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:48
#: templates/InvenTree/settings/plugin.html:125
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:319
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:567
-#: templates/js/translated/part.js:706 templates/js/translated/part.js:1653
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/company.js:641 templates/js/translated/part.js:568
+#: templates/js/translated/part.js:707 templates/js/translated/part.js:1654
+#: templates/js/translated/stock.js:2573
msgid "Name"
msgstr "Название"
-#: InvenTree/models.py:340 build/models.py:207
+#: InvenTree/models.py:349 build/models.py:209
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
@@ -219,28 +219,28 @@ msgstr "Название"
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:92
#: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:765
-#: templates/js/translated/build.js:1920 templates/js/translated/company.js:345
+#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763
+#: templates/js/translated/build.js:1973 templates/js/translated/company.js:345
#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:911
-#: templates/js/translated/order.js:1105 templates/js/translated/order.js:1366
-#: templates/js/translated/part.js:626 templates/js/translated/part.js:1021
-#: templates/js/translated/part.js:1106 templates/js/translated/part.js:1276
-#: templates/js/translated/part.js:1672 templates/js/translated/part.js:1741
-#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2446
-#: templates/js/translated/stock.js:2629 templates/js/translated/stock.js:2667
+#: templates/js/translated/company.js:840 templates/js/translated/order.js:971
+#: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454
+#: templates/js/translated/part.js:627 templates/js/translated/part.js:1022
+#: templates/js/translated/part.js:1107 templates/js/translated/part.js:1277
+#: templates/js/translated/part.js:1673 templates/js/translated/part.js:1742
+#: templates/js/translated/stock.js:1656 templates/js/translated/stock.js:2402
+#: templates/js/translated/stock.js:2585 templates/js/translated/stock.js:2623
msgid "Description"
msgstr "Описание"
-#: InvenTree/models.py:341
+#: InvenTree/models.py:350
msgid "Description (optional)"
msgstr "Описание (необязательно)"
-#: InvenTree/models.py:349
+#: InvenTree/models.py:358
msgid "parent"
msgstr "родитель"
-#: InvenTree/serializers.py:65 part/models.py:2805
+#: InvenTree/serializers.py:65 part/models.py:2820
msgid "Must be a valid number"
msgstr "Должно быть действительным номером"
@@ -294,87 +294,87 @@ msgstr ""
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:665
msgid "German"
msgstr "Немецкий"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:666
msgid "Greek"
msgstr "Греческий"
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:667
msgid "English"
msgstr "Английский"
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:668
msgid "Spanish"
msgstr "Испанский"
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:669
msgid "Spanish (Mexican)"
msgstr "Испанский (Мексика)"
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:670
msgid "French"
msgstr "Французский"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:671
msgid "Hebrew"
msgstr "Иврит"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:672
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:673
msgid "Italian"
msgstr "Итальянский"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:674
msgid "Japanese"
msgstr "Японский"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:675
msgid "Korean"
msgstr "Корейский"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:676
msgid "Dutch"
msgstr "Голландский"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:677
msgid "Norwegian"
msgstr "Норвежский"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:678
msgid "Polish"
msgstr "Польский"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:679
msgid "Portugese"
msgstr "Португальский"
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:680
msgid "Russian"
msgstr "Русский"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:681
msgid "Swedish"
msgstr "Шведский"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:682
msgid "Thai"
msgstr "Тайский"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:683
msgid "Turkish"
msgstr "Турецкий"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:684
msgid "Vietnamese"
msgstr "Вьетнамский"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:685
msgid "Chinese"
msgstr "Китайский"
@@ -421,7 +421,7 @@ msgid "Returned"
msgstr "Возвращено"
#: InvenTree/status_codes.py:143 order/models.py:997
-#: templates/js/translated/order.js:2097 templates/js/translated/order.js:2394
+#: templates/js/translated/order.js:2185 templates/js/translated/order.js:2482
msgid "Shipped"
msgstr "Доставлено"
@@ -501,7 +501,7 @@ msgstr "Отделить от родительского элемента"
msgid "Split child item"
msgstr "Разбить дочерний элемент"
-#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2204
+#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2160
msgid "Merged stock items"
msgstr "Объединенные позиции на складе"
@@ -593,43 +593,43 @@ msgstr "Пароли должны совпадать"
msgid "System Information"
msgstr "Информация о системе"
-#: barcodes/api.py:54 barcodes/api.py:152
+#: barcodes/api.py:55 barcodes/api.py:156
msgid "Must provide barcode_data parameter"
msgstr "Должен быть предоставлен параметр штрихкода"
-#: barcodes/api.py:128
+#: barcodes/api.py:132
msgid "No match found for barcode data"
msgstr "Не найдено совпадений для данных штрих-кода"
-#: barcodes/api.py:130
+#: barcodes/api.py:134
msgid "Match found for barcode data"
msgstr "Найдено совпадение по штрих-коду"
-#: barcodes/api.py:155
+#: barcodes/api.py:159
msgid "Must provide stockitem parameter"
msgstr "Необходимо предоставить параметр инвентаря"
-#: barcodes/api.py:162
+#: barcodes/api.py:166
msgid "No matching stock item found"
msgstr "Не найдено совпадающих элементов инвентаря"
-#: barcodes/api.py:193
+#: barcodes/api.py:197
msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:197
+#: barcodes/api.py:201
msgid "Barcode already matches Stock Location"
msgstr ""
-#: barcodes/api.py:201
+#: barcodes/api.py:205
msgid "Barcode already matches Part"
msgstr "Штрих-код уже совпадает с Компонентом"
-#: barcodes/api.py:207 barcodes/api.py:219
+#: barcodes/api.py:211 barcodes/api.py:223
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: barcodes/api.py:225
+#: barcodes/api.py:229
msgid "Barcode associated with Stock Item"
msgstr ""
@@ -641,18 +641,18 @@ msgstr "Подтвердите отмену"
msgid "Confirm build cancellation"
msgstr "Подтвердите отмену сборки"
-#: build/models.py:133
+#: build/models.py:135
msgid "Invalid choice for parent build"
msgstr "Неверный выбор для родительской сборки"
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:139 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:676 templates/js/translated/stock.js:2422
+#: templates/js/translated/build.js:677 templates/js/translated/stock.js:2378
msgid "Build Order"
msgstr "Порядок сборки"
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:140 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:92
#: order/templates/order/so_sidebar.html:13
@@ -662,41 +662,41 @@ msgstr "Порядок сборки"
msgid "Build Orders"
msgstr "Порядок сборки"
-#: build/models.py:198
+#: build/models.py:200
msgid "Build Order Reference"
msgstr "Ссылка на заказ"
-#: build/models.py:199 order/models.py:213 order/models.py:563
-#: order/models.py:843 part/models.py:2716
+#: build/models.py:201 order/models.py:213 order/models.py:563
+#: order/models.py:843 part/models.py:2731
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:772 templates/js/translated/build.js:1401
-#: templates/js/translated/order.js:1136 templates/js/translated/order.js:2261
+#: templates/js/translated/bom.js:770 templates/js/translated/build.js:1402
+#: templates/js/translated/order.js:1223 templates/js/translated/order.js:2349
msgid "Reference"
msgstr "Отсылка"
-#: build/models.py:210
+#: build/models.py:212
msgid "Brief description of the build"
msgstr "Краткое описание сборки"
-#: build/models.py:219 build/templates/build/build_base.html:169
+#: build/models.py:221 build/templates/build/build_base.html:169
#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr "Родительская сборка"
-#: build/models.py:220
+#: build/models.py:222
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:225 build/templates/build/build_base.html:77
+#: build/models.py:227 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
#: order/models.py:912 order/models.py:986
#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359
-#: part/models.py:2249 part/models.py:2265 part/models.py:2284
-#: part/models.py:2301 part/models.py:2403 part/models.py:2525
-#: part/models.py:2615 part/models.py:2691 part/models.py:2998
-#: part/serializers.py:666 part/templates/part/part_app_base.html:8
+#: part/models.py:2263 part/models.py:2279 part/models.py:2298
+#: part/models.py:2315 part/models.py:2417 part/models.py:2539
+#: part/models.py:2629 part/models.py:2706 part/models.py:3013
+#: part/serializers.py:669 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: part/templates/part/upload_bom.html:52
@@ -707,231 +707,231 @@ msgstr ""
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551
-#: templates/js/translated/bom.js:730 templates/js/translated/build.js:902
-#: templates/js/translated/build.js:1270 templates/js/translated/build.js:1655
-#: templates/js/translated/build.js:1925 templates/js/translated/company.js:492
+#: templates/js/translated/bom.js:728 templates/js/translated/build.js:903
+#: templates/js/translated/build.js:1271 templates/js/translated/build.js:1666
+#: templates/js/translated/build.js:1978 templates/js/translated/company.js:492
#: templates/js/translated/company.js:749 templates/js/translated/order.js:84
-#: templates/js/translated/order.js:651 templates/js/translated/order.js:1090
-#: templates/js/translated/order.js:1693 templates/js/translated/order.js:2050
-#: templates/js/translated/order.js:2245 templates/js/translated/part.js:1006
-#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1254
-#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1657
-#: templates/js/translated/stock.js:2892 templates/js/translated/stock.js:2991
+#: templates/js/translated/order.js:711 templates/js/translated/order.js:1177
+#: templates/js/translated/order.js:1781 templates/js/translated/order.js:2138
+#: templates/js/translated/order.js:2333 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1088 templates/js/translated/part.js:1255
+#: templates/js/translated/stock.js:518 templates/js/translated/stock.js:683
+#: templates/js/translated/stock.js:890 templates/js/translated/stock.js:1613
+#: templates/js/translated/stock.js:2848 templates/js/translated/stock.js:2947
msgid "Part"
msgstr "Детали"
-#: build/models.py:233
+#: build/models.py:235
msgid "Select part to build"
msgstr "Выберите часть для сборки"
-#: build/models.py:238
+#: build/models.py:240
msgid "Sales Order Reference"
msgstr "Отсылка на заказ"
-#: build/models.py:242
+#: build/models.py:244
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 templates/js/translated/build.js:1643
-#: templates/js/translated/order.js:1681
+#: build/models.py:249 build/serializers.py:729
+#: templates/js/translated/build.js:1654 templates/js/translated/order.js:1769
msgid "Source Location"
msgstr "Расположение источника"
-#: build/models.py:251
+#: build/models.py:253
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:256
+#: build/models.py:258
msgid "Destination Location"
msgstr "Место назначения"
-#: build/models.py:260
+#: build/models.py:262
msgid "Select location where the completed items will be stored"
msgstr "Выберите место хранения завершенных элементов"
-#: build/models.py:264
+#: build/models.py:266
msgid "Build Quantity"
msgstr "Количество сборки"
-#: build/models.py:267
+#: build/models.py:269
msgid "Number of stock items to build"
msgstr "Количество складских предметов для сборки"
-#: build/models.py:271
+#: build/models.py:273
msgid "Completed items"
msgstr "Завершенные предметы"
-#: build/models.py:273
+#: build/models.py:275
msgid "Number of stock items which have been completed"
msgstr "Количество предметов на складе, которые были завершены"
-#: build/models.py:277 part/templates/part/part_base.html:234
+#: build/models.py:279 part/templates/part/part_base.html:234
msgid "Build Status"
msgstr "Статус сборки"
-#: build/models.py:281
+#: build/models.py:283
msgid "Build status code"
msgstr "Код статуса сборки"
-#: build/models.py:285 build/serializers.py:218 order/serializers.py:272
-#: stock/models.py:570 templates/js/translated/order.js:513
+#: build/models.py:287 build/serializers.py:218 order/serializers.py:272
+#: stock/models.py:622 templates/js/translated/order.js:573
msgid "Batch Code"
msgstr "Штрих код"
-#: build/models.py:289 build/serializers.py:219
+#: build/models.py:291 build/serializers.py:219
msgid "Batch code for this build output"
msgstr "Штрих код для этого вывода сборки"
-#: build/models.py:292 order/models.py:129 part/models.py:999
-#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1379
+#: build/models.py:294 order/models.py:129 part/models.py:999
+#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1467
msgid "Creation Date"
msgstr "Дата создания"
-#: build/models.py:296 order/models.py:585
+#: build/models.py:298 order/models.py:585
msgid "Target completion date"
msgstr "Целевая дата завершения"
-#: build/models.py:297
+#: build/models.py:299
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Целевая дата для сборки. Сборка будет просрочена после этой даты."
-#: build/models.py:300 order/models.py:255
-#: templates/js/translated/build.js:2002
+#: build/models.py:302 order/models.py:255
+#: templates/js/translated/build.js:2055
msgid "Completion Date"
msgstr "Дата завершения"
-#: build/models.py:306
+#: build/models.py:308
msgid "completed by"
msgstr "выполнено"
-#: build/models.py:314 templates/js/translated/build.js:1970
+#: build/models.py:316 templates/js/translated/build.js:2023
msgid "Issued by"
msgstr "Выдал/ла"
-#: build/models.py:315
+#: build/models.py:317
msgid "User who issued this build order"
msgstr "Пользователь, выпустивший этот заказ на сборку"
-#: build/models.py:323 build/templates/build/build_base.html:190
+#: build/models.py:325 build/templates/build/build_base.html:190
#: build/templates/build/detail.html:116 order/models.py:143
#: order/templates/order/order_base.html:170
#: order/templates/order/sales_order_base.html:182 part/models.py:1003
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1982 templates/js/translated/order.js:945
+#: templates/js/translated/build.js:2035 templates/js/translated/order.js:1005
msgid "Responsible"
msgstr "Ответственный"
-#: build/models.py:324
+#: build/models.py:326
msgid "User responsible for this build order"
msgstr "Пользователь ответственный за этот заказ сборки"
-#: build/models.py:329 build/templates/build/detail.html:102
+#: build/models.py:331 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:564
+#: part/templates/part/part_base.html:354 stock/models.py:616
#: stock/templates/stock/item_base.html:352
msgid "External Link"
msgstr "Внешняя ссылка"
-#: build/models.py:334 build/serializers.py:381
+#: build/models.py:336 build/serializers.py:381
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
#: order/models.py:147 order/models.py:845 order/models.py:1107
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/models.py:988
-#: part/templates/part/detail.html:146 part/templates/part/part_sidebar.html:57
+#: part/templates/part/detail.html:141 part/templates/part/part_sidebar.html:57
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:137 stock/forms.py:171 stock/models.py:636
-#: stock/models.py:1971 stock/models.py:2077 stock/serializers.py:332
+#: stock/forms.py:137 stock/forms.py:171 stock/models.py:688
+#: stock/models.py:2023 stock/models.py:2129 stock/serializers.py:332
#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:936
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1257
-#: templates/js/translated/order.js:1562 templates/js/translated/order.js:2419
-#: templates/js/translated/stock.js:1344 templates/js/translated/stock.js:1935
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934
+#: templates/js/translated/company.js:845 templates/js/translated/order.js:1344
+#: templates/js/translated/order.js:1650 templates/js/translated/order.js:2507
+#: templates/js/translated/stock.js:1300 templates/js/translated/stock.js:1891
msgid "Notes"
msgstr "Заметки"
-#: build/models.py:335
+#: build/models.py:337
msgid "Extra build notes"
msgstr "Дополнительные заметки к сборке"
-#: build/models.py:748
+#: build/models.py:750
msgid "No build output specified"
msgstr "Вывод сборки не указан"
-#: build/models.py:751
+#: build/models.py:753
msgid "Build output is already completed"
msgstr "Вывод сборки уже завершен"
-#: build/models.py:754
+#: build/models.py:756
msgid "Build output does not match Build Order"
msgstr "Вывод сборки не совпадает с порядком сборки"
-#: build/models.py:1060
+#: build/models.py:1162
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "Элемент сборки должен указать вывод сборки, так как основная часть помечена как отслеживаемая"
-#: build/models.py:1069
+#: build/models.py:1171
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr "Выделенное количество ({q}) не должно превышать доступное количество на складе ({a})"
-#: build/models.py:1079
+#: build/models.py:1181
msgid "Stock item is over-allocated"
msgstr "Предмет на складе перераспределен"
-#: build/models.py:1085 order/models.py:1225
+#: build/models.py:1187 order/models.py:1225
msgid "Allocation quantity must be greater than zero"
msgstr "Выделенное количество должно быть больше нуля"
-#: build/models.py:1091
+#: build/models.py:1193
msgid "Quantity must be 1 for serialized stock"
msgstr "Количество должно быть 1 для сериализованных запасов"
-#: build/models.py:1148
+#: build/models.py:1250
msgid "Selected stock item not found in BOM"
msgstr "Выбранный предмет со складом не найден в BOM"
-#: build/models.py:1217 stock/templates/stock/item_base.html:324
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898
+#: build/models.py:1319 stock/templates/stock/item_base.html:324
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1951
#: templates/navbar.html:35
msgid "Build"
msgstr "Сборка"
-#: build/models.py:1218
+#: build/models.py:1320
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1234 build/serializers.py:576 order/serializers.py:783
+#: build/models.py:1336 build/serializers.py:576 order/serializers.py:783
#: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635
#: stock/serializers.py:753 stock/templates/stock/item_base.html:9
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:346
-#: templates/js/translated/build.js:687 templates/js/translated/build.js:692
-#: templates/js/translated/build.js:1657 templates/js/translated/build.js:2050
-#: templates/js/translated/order.js:85 templates/js/translated/order.js:1694
-#: templates/js/translated/order.js:1949 templates/js/translated/order.js:1954
-#: templates/js/translated/order.js:2057 templates/js/translated/order.js:2147
-#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728
-#: templates/js/translated/stock.js:2753
+#: templates/js/translated/build.js:688 templates/js/translated/build.js:693
+#: templates/js/translated/build.js:1668 templates/js/translated/build.js:2103
+#: templates/js/translated/order.js:85 templates/js/translated/order.js:1782
+#: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:2235
+#: templates/js/translated/stock.js:519 templates/js/translated/stock.js:684
+#: templates/js/translated/stock.js:2709
msgid "Stock Item"
msgstr "Предметы на складе"
-#: build/models.py:1235
+#: build/models.py:1337
msgid "Source stock item"
msgstr "Исходный складской предмет"
-#: build/models.py:1247 build/serializers.py:188
+#: build/models.py:1349 build/serializers.py:188
#: build/templates/build/build_base.html:82
#: build/templates/build/detail.html:35 common/models.py:1317
#: company/forms.py:42 company/templates/company/supplier_part.html:251
#: order/models.py:836 order/models.py:1265 order/serializers.py:903
#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144
-#: part/forms.py:160 part/forms.py:176 part/models.py:2707
-#: part/templates/part/detail.html:1008 part/templates/part/detail.html:1094
+#: part/forms.py:160 part/forms.py:176 part/models.py:2722
+#: part/templates/part/detail.html:994 part/templates/part/detail.html:1080
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_build_order_base.html:114
@@ -943,32 +943,32 @@ msgstr "Исходный складской предмет"
#: stock/templates/stock/item_base.html:176
#: stock/templates/stock/item_base.html:241
#: stock/templates/stock/item_base.html:249
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:780
-#: templates/js/translated/build.js:375 templates/js/translated/build.js:523
-#: templates/js/translated/build.js:714 templates/js/translated/build.js:911
-#: templates/js/translated/build.js:921 templates/js/translated/build.js:1297
-#: templates/js/translated/build.js:1658
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778
+#: templates/js/translated/build.js:376 templates/js/translated/build.js:524
+#: templates/js/translated/build.js:715 templates/js/translated/build.js:912
+#: templates/js/translated/build.js:922 templates/js/translated/build.js:1298
+#: templates/js/translated/build.js:1669
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:101 templates/js/translated/order.js:1142
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:1976
-#: templates/js/translated/order.js:2064 templates/js/translated/order.js:2153
-#: templates/js/translated/order.js:2267 templates/js/translated/part.js:906
-#: templates/js/translated/part.js:1884 templates/js/translated/part.js:2007
-#: templates/js/translated/part.js:2085 templates/js/translated/stock.js:391
-#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758
-#: templates/js/translated/stock.js:2802 templates/js/translated/stock.js:2904
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:1229
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:2064
+#: templates/js/translated/order.js:2152 templates/js/translated/order.js:2241
+#: templates/js/translated/order.js:2355 templates/js/translated/part.js:907
+#: templates/js/translated/part.js:1885 templates/js/translated/part.js:2008
+#: templates/js/translated/part.js:2086 templates/js/translated/stock.js:390
+#: templates/js/translated/stock.js:544 templates/js/translated/stock.js:714
+#: templates/js/translated/stock.js:2758 templates/js/translated/stock.js:2860
msgid "Quantity"
msgstr "Количество"
-#: build/models.py:1248
+#: build/models.py:1350
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1256
+#: build/models.py:1358
msgid "Install into"
msgstr ""
-#: build/models.py:1257
+#: build/models.py:1359
msgid "Destination stock item"
msgstr ""
@@ -997,8 +997,8 @@ msgid "Enter quantity for build output"
msgstr "Введите количество для вывода сборки"
#: build/serializers.py:201 build/serializers.py:596 order/models.py:280
-#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:826
-#: stock/models.py:404 stock/models.py:1180 stock/serializers.py:305
+#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:836
+#: stock/models.py:456 stock/models.py:1232 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr "Количество должно быть больше нуля"
@@ -1012,8 +1012,8 @@ msgstr ""
#: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907
#: stock/forms.py:78 stock/serializers.py:314
-#: templates/js/translated/order.js:524 templates/js/translated/stock.js:238
-#: templates/js/translated/stock.js:392
+#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237
+#: templates/js/translated/stock.js:391
msgid "Serial Numbers"
msgstr "Серийные номера"
@@ -1029,7 +1029,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:275 stock/api.py:549
+#: build/serializers.py:275 stock/api.py:551
msgid "The following serial numbers already exist"
msgstr ""
@@ -1041,13 +1041,13 @@ msgstr ""
#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788
#: stock/serializers.py:1029 stock/templates/stock/item_base.html:292
#: templates/js/translated/barcode.js:384
-#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:699
-#: templates/js/translated/build.js:1309 templates/js/translated/order.js:551
-#: templates/js/translated/order.js:1961 templates/js/translated/order.js:2072
-#: templates/js/translated/order.js:2080 templates/js/translated/order.js:2161
-#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564
-#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936
-#: templates/js/translated/stock.js:1807 templates/js/translated/stock.js:2694
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700
+#: templates/js/translated/build.js:1310 templates/js/translated/order.js:611
+#: templates/js/translated/order.js:2049 templates/js/translated/order.js:2160
+#: templates/js/translated/order.js:2168 templates/js/translated/order.js:2249
+#: templates/js/translated/part.js:179 templates/js/translated/stock.js:520
+#: templates/js/translated/stock.js:685 templates/js/translated/stock.js:892
+#: templates/js/translated/stock.js:1763 templates/js/translated/stock.js:2650
msgid "Location"
msgstr "Расположение"
@@ -1058,10 +1058,10 @@ msgstr ""
#: build/serializers.py:377 build/templates/build/build_base.html:142
#: build/templates/build/detail.html:63 order/models.py:579
#: order/serializers.py:290 stock/templates/stock/item_base.html:182
-#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1954
-#: templates/js/translated/order.js:656 templates/js/translated/order.js:915
-#: templates/js/translated/order.js:1371 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2771 templates/js/translated/stock.js:2920
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2007
+#: templates/js/translated/order.js:716 templates/js/translated/order.js:975
+#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2727 templates/js/translated/stock.js:2876
msgid "Status"
msgstr "Статус"
@@ -1073,7 +1073,7 @@ msgstr ""
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:445 templates/js/translated/build.js:150
+#: build/serializers.py:445 templates/js/translated/build.js:151
msgid "Required stock has not been fully allocated"
msgstr ""
@@ -1085,7 +1085,7 @@ msgstr ""
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:461 templates/js/translated/build.js:154
+#: build/serializers.py:461 templates/js/translated/build.js:155
msgid "Required build quantity has not been completed"
msgstr ""
@@ -1097,8 +1097,8 @@ msgstr ""
msgid "No build outputs have been created for this build order"
msgstr ""
-#: build/serializers.py:501 build/serializers.py:550 part/models.py:2831
-#: part/models.py:2990
+#: build/serializers.py:501 build/serializers.py:550 part/models.py:2846
+#: part/models.py:3005
msgid "BOM Item"
msgstr "BOM Компонент"
@@ -1135,6 +1135,26 @@ msgstr ""
msgid "Allocation items must be provided"
msgstr ""
+#: build/serializers.py:730
+msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
+msgstr ""
+
+#: build/serializers.py:735
+msgid "Interchangeable Stock"
+msgstr ""
+
+#: build/serializers.py:736
+msgid "Stock items in multiple locations can be used interchangeably"
+msgstr ""
+
+#: build/serializers.py:741
+msgid "Substitute Stock"
+msgstr ""
+
+#: build/serializers.py:742
+msgid "Allow allocation of substitute parts"
+msgstr ""
+
#: build/tasks.py:98
msgid "Stock required for build order"
msgstr "Для заказа сборки необходим остаток"
@@ -1206,9 +1226,9 @@ msgstr ""
#: order/templates/order/order_base.html:156
#: order/templates/order/sales_order_base.html:163
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1994 templates/js/translated/order.js:932
-#: templates/js/translated/order.js:1204 templates/js/translated/order.js:1387
-#: templates/js/translated/order.js:2330 templates/js/translated/part.js:910
+#: templates/js/translated/build.js:2047 templates/js/translated/order.js:992
+#: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475
+#: templates/js/translated/order.js:2418 templates/js/translated/part.js:911
msgid "Target Date"
msgstr "Целевая дата"
@@ -1230,7 +1250,7 @@ msgstr "Просрочено"
#: build/templates/build/build_base.html:163
#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
#: order/templates/order/sales_order_base.html:170
-#: templates/js/translated/build.js:1940
+#: templates/js/translated/build.js:1993
#: templates/js/translated/table_filters.js:365
msgid "Completed"
msgstr "Завершённые"
@@ -1242,7 +1262,7 @@ msgstr "Завершённые"
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:286
-#: templates/js/translated/order.js:1326 templates/js/translated/stock.js:2436
+#: templates/js/translated/order.js:1414 templates/js/translated/stock.js:2392
msgid "Sales Order"
msgstr "Заказ покупателя"
@@ -1277,7 +1297,7 @@ msgid "Stock can be taken from any available location."
msgstr ""
#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133
-#: templates/js/translated/order.js:657 templates/js/translated/order.js:1246
+#: templates/js/translated/order.js:717 templates/js/translated/order.js:1333
msgid "Destination"
msgstr ""
@@ -1285,13 +1305,13 @@ msgstr ""
msgid "Destination location not specified"
msgstr ""
-#: build/templates/build/detail.html:74 templates/js/translated/build.js:929
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:930
msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:310
-#: templates/js/translated/stock.js:1796 templates/js/translated/stock.js:2927
+#: templates/js/translated/stock.js:1752 templates/js/translated/stock.js:2883
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:238
msgid "Batch"
@@ -1300,7 +1320,7 @@ msgstr "Партия"
#: build/templates/build/detail.html:127
#: order/templates/order/order_base.html:143
#: order/templates/order/sales_order_base.html:157
-#: templates/js/translated/build.js:1962
+#: templates/js/translated/build.js:2015
msgid "Created"
msgstr "Создано"
@@ -1320,7 +1340,7 @@ msgstr ""
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:177 templates/js/translated/build.js:1484
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1485
msgid "Unallocate stock"
msgstr ""
@@ -1329,111 +1349,119 @@ msgid "Unallocate Stock"
msgstr ""
#: build/templates/build/detail.html:180
-msgid "Allocate stock to build"
+msgid "Automatically allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
+#: build/templates/build/detail.html:181
+msgid "Auto Allocate"
+msgstr ""
+
+#: build/templates/build/detail.html:183
+msgid "Manually allocate stock to build"
+msgstr ""
+
+#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8
msgid "Allocate Stock"
msgstr ""
-#: build/templates/build/detail.html:184
+#: build/templates/build/detail.html:187
msgid "Order required parts"
msgstr ""
-#: build/templates/build/detail.html:185
+#: build/templates/build/detail.html:188
#: company/templates/company/detail.html:38
#: company/templates/company/detail.html:85 order/views.py:463
-#: part/templates/part/category.html:177
+#: part/templates/part/category.html:174
msgid "Order Parts"
msgstr "Заказать детали"
-#: build/templates/build/detail.html:197
+#: build/templates/build/detail.html:200
msgid "Untracked stock has been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:201
+#: build/templates/build/detail.html:204
msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:208
+#: build/templates/build/detail.html:211
msgid "Allocate selected items"
msgstr ""
-#: build/templates/build/detail.html:218
+#: build/templates/build/detail.html:221
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:230
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:231
+#: build/templates/build/detail.html:234
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:232
+#: build/templates/build/detail.html:235
msgid "New Build Output"
msgstr ""
-#: build/templates/build/detail.html:246
+#: build/templates/build/detail.html:249
msgid "Output Actions"
msgstr ""
-#: build/templates/build/detail.html:250
+#: build/templates/build/detail.html:253
msgid "Complete selected build outputs"
msgstr ""
-#: build/templates/build/detail.html:251
+#: build/templates/build/detail.html:254
msgid "Complete outputs"
msgstr ""
-#: build/templates/build/detail.html:253
+#: build/templates/build/detail.html:256
msgid "Delete selected build outputs"
msgstr ""
-#: build/templates/build/detail.html:254
+#: build/templates/build/detail.html:257
msgid "Delete outputs"
msgstr ""
-#: build/templates/build/detail.html:270
+#: build/templates/build/detail.html:273
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19
+#: build/templates/build/detail.html:285 build/templates/build/sidebar.html:19
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:107
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:222
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217
#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:105
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr "Приложения"
-#: build/templates/build/detail.html:298
+#: build/templates/build/detail.html:301
msgid "Build Notes"
msgstr "Заметки сборки"
-#: build/templates/build/detail.html:302 build/templates/build/detail.html:478
-#: company/templates/company/detail.html:188
-#: company/templates/company/detail.html:215
+#: build/templates/build/detail.html:305 build/templates/build/detail.html:481
+#: company/templates/company/detail.html:190
+#: company/templates/company/detail.html:217
#: order/templates/order/purchase_order_detail.html:80
#: order/templates/order/purchase_order_detail.html:108
#: order/templates/order/sales_order_detail.html:127
#: order/templates/order/sales_order_detail.html:186
-#: part/templates/part/detail.html:150 stock/templates/stock/item.html:125
+#: part/templates/part/detail.html:145 stock/templates/stock/item.html:125
#: stock/templates/stock/item.html:223
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:519
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:520
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:329
+#: build/templates/build/index.html:18 part/templates/part/detail.html:322
msgid "New Build Order"
msgstr ""
@@ -1658,7 +1686,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:732 part/models.py:2527 report/models.py:187
+#: common/models.py:732 part/models.py:2541 report/models.py:187
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:417
msgid "Template"
@@ -1668,7 +1696,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:739 part/models.py:951 templates/js/translated/bom.js:1300
+#: common/models.py:739 part/models.py:951 templates/js/translated/bom.js:1305
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:429
msgid "Assembly"
@@ -2243,7 +2271,7 @@ msgstr ""
#: common/models.py:1325 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:937 templates/js/translated/part.js:1889
+#: templates/js/translated/part.js:938 templates/js/translated/part.js:1890
msgid "Price"
msgstr ""
@@ -2337,14 +2365,14 @@ msgstr ""
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
-#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:210
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208
#: templates/patterns/wizard/upload.html:35
msgid "Upload File"
msgstr ""
#: common/views.py:94 order/views.py:244
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:211
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:209
#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
@@ -2472,7 +2500,7 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:508
+#: company/models.py:320 company/models.py:535 stock/models.py:560
#: stock/templates/stock/item_base.html:137 templates/js/translated/bom.js:541
msgid "Base Part"
msgstr ""
@@ -2499,8 +2527,8 @@ msgstr ""
#: company/models.py:342 company/templates/company/manufacturer_part.html:96
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1124
-#: templates/js/translated/part.js:245 templates/js/translated/part.js:895
+#: templates/js/translated/company.js:818 templates/js/translated/order.js:1211
+#: templates/js/translated/part.js:245 templates/js/translated/part.js:896
msgid "MPN"
msgstr ""
@@ -2529,8 +2557,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2064 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1331
+#: stock/models.py:2116 templates/js/translated/company.js:647
+#: templates/js/translated/part.js:716 templates/js/translated/stock.js:1287
msgid "Value"
msgstr ""
@@ -2538,10 +2566,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:945 part/models.py:2495
+#: company/models.py:429 part/models.py:945 part/models.py:2509
#: part/templates/part/part_base.html:288
#: templates/InvenTree/settings/settings.html:324
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:721
+#: templates/js/translated/company.js:653 templates/js/translated/part.js:722
msgid "Units"
msgstr ""
@@ -2559,8 +2587,8 @@ msgstr ""
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237
#: part/bom.py:265 stock/templates/stock/item_base.html:376
#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:898
-#: templates/js/translated/part.js:215 templates/js/translated/part.js:863
+#: templates/js/translated/company.js:774 templates/js/translated/order.js:958
+#: templates/js/translated/part.js:215 templates/js/translated/part.js:864
#: templates/js/translated/table_filters.js:388
msgid "Supplier"
msgstr ""
@@ -2570,8 +2598,8 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1111
-#: templates/js/translated/part.js:226 templates/js/translated/part.js:881
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198
+#: templates/js/translated/part.js:226 templates/js/translated/part.js:882
msgid "SKU"
msgstr ""
@@ -2592,7 +2620,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:119
-#: part/models.py:2719 part/templates/part/upload_bom.html:59
+#: part/models.py:2734 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409
msgid "Note"
@@ -2607,8 +2635,8 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:532 stock/templates/stock/item_base.html:317
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1931
+#: stock/models.py:584 stock/templates/stock/item_base.html:317
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1887
msgid "Packaging"
msgstr ""
@@ -2676,11 +2704,11 @@ msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:83 order/models.py:574
-#: order/templates/order/sales_order_base.html:115 stock/models.py:551
-#: stock/models.py:552 stock/serializers.py:683
+#: order/templates/order/sales_order_base.html:115 stock/models.py:603
+#: stock/models.py:604 stock/serializers.py:683
#: stock/templates/stock/item_base.html:269
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1348
-#: templates/js/translated/stock.js:2735
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1436
+#: templates/js/translated/stock.js:2691
#: templates/js/translated/table_filters.js:392
msgid "Customer"
msgstr ""
@@ -2711,7 +2739,7 @@ msgstr ""
#: company/templates/company/detail.html:20
#: company/templates/company/manufacturer_part.html:118
-#: part/templates/part/detail.html:367
+#: part/templates/part/detail.html:360
msgid "New Supplier Part"
msgstr ""
@@ -2719,14 +2747,14 @@ msgstr ""
#: company/templates/company/detail.html:79
#: company/templates/company/manufacturer_part.html:127
#: company/templates/company/manufacturer_part.html:156
-#: part/templates/part/category.html:171 part/templates/part/detail.html:376
-#: part/templates/part/detail.html:405
+#: part/templates/part/category.html:168 part/templates/part/detail.html:369
+#: part/templates/part/detail.html:398
msgid "Options"
msgstr ""
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177
+#: part/templates/part/category.html:174
msgid "Order parts"
msgstr ""
@@ -2748,7 +2776,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:395
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:388
msgid "New Manufacturer Part"
msgstr ""
@@ -2762,7 +2790,7 @@ msgstr ""
#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:40
+#: part/templates/part/detail.html:80 part/templates/part/part_sidebar.html:40
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
@@ -2784,7 +2812,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:44
+#: part/templates/part/detail.html:103 part/templates/part/part_sidebar.html:44
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
@@ -2802,23 +2830,23 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/detail.html:168
-#: templates/js/translated/build.js:1281
+#: templates/js/translated/build.js:1282
msgid "Assigned Stock"
msgstr ""
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:186
msgid "Company Notes"
msgstr ""
-#: company/templates/company/detail.html:384
+#: company/templates/company/detail.html:380
#: company/templates/company/manufacturer_part.html:215
-#: part/templates/part/detail.html:449
+#: part/templates/part/detail.html:442
msgid "Delete Supplier Parts?"
msgstr ""
-#: company/templates/company/detail.html:385
+#: company/templates/company/detail.html:381
#: company/templates/company/manufacturer_part.html:216
-#: part/templates/part/detail.html:450
+#: part/templates/part/detail.html:443
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2835,7 +2863,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:34
#: company/templates/company/supplier_part.html:159
-#: part/templates/part/detail.html:88 part/templates/part/part_base.html:76
+#: part/templates/part/detail.html:83 part/templates/part/part_base.html:76
msgid "Order part"
msgstr ""
@@ -2862,14 +2890,14 @@ msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
-#: part/templates/part/detail.html:378
+#: part/templates/part/detail.html:371
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
#: company/templates/company/manufacturer_part.html:158
#: company/templates/company/manufacturer_part.html:254
-#: part/templates/part/detail.html:378 part/templates/part/detail.html:407
+#: part/templates/part/detail.html:371 part/templates/part/detail.html:400
#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31
#: users/models.py:217
msgid "Delete"
@@ -2878,12 +2906,12 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:143
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:17
-#: part/templates/part/detail.html:196 part/templates/part/part_sidebar.html:9
+#: part/templates/part/detail.html:191 part/templates/part/part_sidebar.html:9
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:147
-#: part/templates/part/detail.html:201
+#: part/templates/part/detail.html:196
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:66
msgid "New Parameter"
@@ -2894,7 +2922,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:191
-#: part/templates/part/detail.html:908
+#: part/templates/part/detail.html:894
msgid "Add Parameter"
msgstr ""
@@ -2923,9 +2951,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:516
+#: company/templates/company/supplier_part.html:24 stock/models.py:568
#: stock/templates/stock/item_base.html:381
-#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1888
+#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1844
msgid "Supplier Part"
msgstr ""
@@ -2951,7 +2979,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:166
-#: templates/js/translated/stock.js:368
+#: templates/js/translated/stock.js:367
msgid "New Stock Item"
msgstr ""
@@ -2961,7 +2989,7 @@ msgid "Supplier Part Orders"
msgstr ""
#: company/templates/company/supplier_part.html:160
-#: part/templates/part/detail.html:89
+#: part/templates/part/detail.html:84
msgid "Order Part"
msgstr ""
@@ -2972,7 +3000,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1319
+#: part/templates/part/prices.html:271 part/views.py:1254
msgid "Add Price Break"
msgstr ""
@@ -2980,11 +3008,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1381
+#: company/templates/company/supplier_part.html:224 part/views.py:1316
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1367
+#: company/templates/company/supplier_part.html:238 part/views.py:1302
msgid "Edit Price Break"
msgstr ""
@@ -3002,10 +3030,10 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:150
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/bom.js:553 templates/js/translated/part.js:495
-#: templates/js/translated/part.js:630 templates/js/translated/part.js:1147
-#: templates/js/translated/part.js:1308 templates/js/translated/stock.js:935
-#: templates/js/translated/stock.js:1711 templates/navbar.html:28
+#: templates/js/translated/bom.js:553 templates/js/translated/part.js:496
+#: templates/js/translated/part.js:631 templates/js/translated/part.js:1148
+#: templates/js/translated/part.js:1309 templates/js/translated/stock.js:891
+#: templates/js/translated/stock.js:1667 templates/navbar.html:28
msgid "Stock"
msgstr ""
@@ -3028,7 +3056,7 @@ msgstr ""
#: stock/templates/stock/location.html:150
#: stock/templates/stock/location.html:162
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2641
+#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2597
#: templates/stats.html:105 templates/stats.html:114 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -3058,20 +3086,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:591
+#: company/views.py:129 part/views.py:589
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:623
+#: company/views.py:158 part/views.py:621
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:630
+#: company/views.py:165 part/views.py:628
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:639
+#: company/views.py:174 part/views.py:637
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3190,7 +3218,7 @@ msgid "Company from which the items are being ordered"
msgstr ""
#: order/models.py:231 order/templates/order/order_base.html:118
-#: templates/js/translated/order.js:907
+#: templates/js/translated/order.js:967
msgid "Supplier Reference"
msgstr ""
@@ -3247,7 +3275,7 @@ msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
#: order/models.py:589 order/models.py:1084
-#: templates/js/translated/order.js:1395 templates/js/translated/order.js:1546
+#: templates/js/translated/order.js:1483 templates/js/translated/order.js:1634
msgid "Shipment Date"
msgstr ""
@@ -3292,7 +3320,7 @@ msgid "Supplier part must match supplier"
msgstr ""
#: order/models.py:891 order/models.py:982 order/models.py:1078
-#: templates/js/translated/order.js:1937 templates/js/translated/stock.js:2403
+#: templates/js/translated/order.js:2025 templates/js/translated/stock.js:2359
msgid "Order"
msgstr ""
@@ -3300,8 +3328,8 @@ msgstr ""
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:331
-#: templates/js/translated/order.js:876 templates/js/translated/part.js:838
-#: templates/js/translated/stock.js:1865 templates/js/translated/stock.js:2716
+#: templates/js/translated/order.js:936 templates/js/translated/part.js:839
+#: templates/js/translated/stock.js:1821 templates/js/translated/stock.js:2672
msgid "Purchase Order"
msgstr ""
@@ -3310,8 +3338,8 @@ msgid "Supplier part"
msgstr ""
#: order/models.py:920 order/templates/order/order_base.html:163
-#: templates/js/translated/order.js:654 templates/js/translated/order.js:1226
-#: templates/js/translated/part.js:932 templates/js/translated/part.js:959
+#: templates/js/translated/order.js:714 templates/js/translated/order.js:1313
+#: templates/js/translated/part.js:933 templates/js/translated/part.js:960
#: templates/js/translated/table_filters.js:312
msgid "Received"
msgstr ""
@@ -3320,9 +3348,9 @@ msgstr ""
msgid "Number of items received"
msgstr ""
-#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:645
+#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:697
#: stock/serializers.py:170 stock/templates/stock/item_base.html:338
-#: templates/js/translated/stock.js:1919
+#: templates/js/translated/stock.js:1875
msgid "Purchase Price"
msgstr ""
@@ -3456,11 +3484,11 @@ msgstr ""
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:273 templates/js/translated/order.js:514
+#: order/serializers.py:273 templates/js/translated/order.js:574
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:281 templates/js/translated/order.js:525
+#: order/serializers.py:281 templates/js/translated/order.js:585
msgid "Enter serial numbers for incoming stock items"
msgstr ""
@@ -3578,7 +3606,7 @@ msgstr ""
#: order/templates/order/order_base.html:94
#: order/templates/order/sales_order_base.html:89
-#: templates/js/translated/stock.js:2459
+#: templates/js/translated/stock.js:2415
msgid "Order Status"
msgstr ""
@@ -3650,10 +3678,10 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/bom.js:76 templates/js/translated/build.js:380
-#: templates/js/translated/build.js:528 templates/js/translated/build.js:1547
-#: templates/js/translated/order.js:602 templates/js/translated/order.js:1605
-#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769
+#: templates/js/translated/bom.js:76 templates/js/translated/build.js:381
+#: templates/js/translated/build.js:529 templates/js/translated/build.js:1558
+#: templates/js/translated/order.js:662 templates/js/translated/order.js:1693
+#: templates/js/translated/stock.js:557 templates/js/translated/stock.js:725
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr ""
@@ -3717,8 +3745,8 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:940 templates/js/translated/order.js:1403
-#: templates/js/translated/order.js:1533
+#: templates/js/translated/order.js:1000 templates/js/translated/order.js:1491
+#: templates/js/translated/order.js:1621
msgid "Items"
msgstr ""
@@ -3752,9 +3780,9 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:27
-#: order/templates/order/purchase_order_detail.html:182
+#: order/templates/order/purchase_order_detail.html:166
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:245
+#: order/templates/order/sales_order_detail.html:233
msgid "Add Line Item"
msgstr ""
@@ -3794,7 +3822,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:122
-#: templates/js/translated/order.js:1361
+#: templates/js/translated/order.js:1449
msgid "Customer Reference"
msgstr ""
@@ -3827,7 +3855,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:48
-#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1465
+#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1466
msgid "Actions"
msgstr ""
@@ -3902,31 +3930,31 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:499
+#: part/api.py:502
msgid "Valid"
msgstr ""
-#: part/api.py:500
+#: part/api.py:503
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:505
+#: part/api.py:508
msgid "This option must be selected"
msgstr ""
-#: part/api.py:847
+#: part/api.py:866
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:851
+#: part/api.py:870
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:866
+#: part/api.py:885
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:897 part/api.py:901 part/api.py:916 part/api.py:920
+#: part/api.py:916 part/api.py:920 part/api.py:935 part/api.py:939
msgid "This field is required"
msgstr ""
@@ -3944,7 +3972,7 @@ msgid "Available Stock"
msgstr ""
#: part/bom.py:128 part/templates/part/part_base.html:203
-#: templates/js/translated/part.js:1323
+#: templates/js/translated/part.js:1324
msgid "On Order"
msgstr ""
@@ -3976,7 +4004,7 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:97 part/models.py:2571 part/templates/part/category.html:15
+#: part/models.py:97 part/models.py:2585 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -3993,7 +4021,7 @@ msgstr ""
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:37
-#: templates/js/translated/part.js:1685 templates/navbar.html:21
+#: templates/js/translated/part.js:1686 templates/navbar.html:21
#: templates/stats.html:92 templates/stats.html:101 users/models.py:41
msgid "Parts"
msgstr ""
@@ -4023,7 +4051,7 @@ msgstr ""
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:803 part/models.py:2624
+#: part/models.py:803 part/models.py:2638
msgid "Part name"
msgstr ""
@@ -4056,11 +4084,11 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:841 part/models.py:2321 part/models.py:2570
+#: part/models.py:841 part/models.py:2335 part/models.py:2584
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:223
-#: templates/js/translated/part.js:1290
+#: templates/js/translated/part.js:1291
msgid "Category"
msgstr ""
@@ -4069,8 +4097,8 @@ msgid "Part category"
msgstr ""
#: part/models.py:847 part/templates/part/part_base.html:274
-#: templates/js/translated/part.js:618 templates/js/translated/part.js:1243
-#: templates/js/translated/stock.js:1683
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:1244
+#: templates/js/translated/stock.js:1639
msgid "IPN"
msgstr ""
@@ -4083,7 +4111,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:855 part/templates/part/part_base.html:281
-#: report/models.py:200 templates/js/translated/part.js:622
+#: report/models.py:200 templates/js/translated/part.js:623
msgid "Revision"
msgstr ""
@@ -4175,301 +4203,309 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2371
+#: part/models.py:2385
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2388
+#: part/models.py:2402
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2408 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:1311
+#: part/models.py:2422 templates/js/translated/part.js:1737
+#: templates/js/translated/stock.js:1267
msgid "Test Name"
msgstr ""
-#: part/models.py:2409
+#: part/models.py:2423
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2414
+#: part/models.py:2428
msgid "Test Description"
msgstr ""
-#: part/models.py:2415
+#: part/models.py:2429
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2420 templates/js/translated/part.js:1745
+#: part/models.py:2434 templates/js/translated/part.js:1746
#: templates/js/translated/table_filters.js:276
msgid "Required"
msgstr ""
-#: part/models.py:2421
+#: part/models.py:2435
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2426 templates/js/translated/part.js:1753
+#: part/models.py:2440 templates/js/translated/part.js:1754
msgid "Requires Value"
msgstr ""
-#: part/models.py:2427
+#: part/models.py:2441
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2432 templates/js/translated/part.js:1760
+#: part/models.py:2446 templates/js/translated/part.js:1761
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2433
+#: part/models.py:2447
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2444
+#: part/models.py:2458
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2480
+#: part/models.py:2494
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2488
+#: part/models.py:2502
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2495
+#: part/models.py:2509
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2525
+#: part/models.py:2539
msgid "Parent Part"
msgstr ""
-#: part/models.py:2527 part/models.py:2576 part/models.py:2577
+#: part/models.py:2541 part/models.py:2590 part/models.py:2591
#: templates/InvenTree/settings/settings.html:218
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2529
+#: part/models.py:2543
msgid "Data"
msgstr ""
-#: part/models.py:2529
+#: part/models.py:2543
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2581 templates/InvenTree/settings/settings.html:227
+#: part/models.py:2595 templates/InvenTree/settings/settings.html:227
msgid "Default Value"
msgstr ""
-#: part/models.py:2582
+#: part/models.py:2596
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2616
+#: part/models.py:2630
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2619 templates/js/translated/model_renderers.js:182
+#: part/models.py:2633 templates/js/translated/model_renderers.js:182
msgid "Part ID"
msgstr ""
-#: part/models.py:2620
+#: part/models.py:2634
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2623
+#: part/models.py:2637
msgid "Part Name"
msgstr ""
-#: part/models.py:2627
+#: part/models.py:2641
msgid "Part IPN"
msgstr ""
-#: part/models.py:2628
+#: part/models.py:2642
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2645
msgid "Level"
msgstr ""
-#: part/models.py:2632
+#: part/models.py:2646
msgid "BOM level"
msgstr ""
-#: part/models.py:2692
+#: part/models.py:2707
msgid "Select parent part"
msgstr ""
-#: part/models.py:2700
+#: part/models.py:2715
msgid "Sub part"
msgstr ""
-#: part/models.py:2701
+#: part/models.py:2716
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2707
+#: part/models.py:2722
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2709 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:791 templates/js/translated/bom.js:865
+#: part/models.py:2724 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2709
+#: part/models.py:2724
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2712 part/templates/part/upload_bom.html:55
+#: part/models.py:2727 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2713
+#: part/models.py:2728
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2716
+#: part/models.py:2731
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2719
+#: part/models.py:2734
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2721
+#: part/models.py:2736
msgid "Checksum"
msgstr ""
-#: part/models.py:2721
+#: part/models.py:2736
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2725 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:882
+#: part/models.py:2740 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:880
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2726
+#: part/models.py:2741
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2731 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:874
+#: part/models.py:2746 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:872
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2732
+#: part/models.py:2747
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2817 stock/models.py:394
+#: part/models.py:2832 stock/models.py:446
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2826 part/models.py:2828
+#: part/models.py:2841 part/models.py:2843
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2957
+#: part/models.py:2972
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2979
+#: part/models.py:2994
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2991
+#: part/models.py:3006
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2999
+#: part/models.py:3014
msgid "Substitute part"
msgstr ""
-#: part/models.py:3010
+#: part/models.py:3025
msgid "Part 1"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3029
msgid "Part 2"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3029
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3046
+#: part/models.py:3061
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
-#: part/serializers.py:667
+#: part/serializers.py:670
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:678
+#: part/serializers.py:681
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:679
+#: part/serializers.py:682
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:684
+#: part/serializers.py:687
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:685
+#: part/serializers.py:688
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:690
+#: part/serializers.py:693
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:691
+#: part/serializers.py:694
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:699
+msgid "Copy Substitute Parts"
+msgstr ""
+
+#: part/serializers.py:700
+msgid "Copy substitute parts when duplicate BOM items"
+msgstr ""
+
+#: part/serializers.py:744
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:735
+#: part/serializers.py:745
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:762
+#: part/serializers.py:772
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:805
+#: part/serializers.py:815
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:808
+#: part/serializers.py:818
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:811
+#: part/serializers.py:821
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:820
+#: part/serializers.py:830
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:828
+#: part/serializers.py:838
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:847
+#: part/serializers.py:857
msgid "At least one BOM item is required"
msgstr ""
@@ -4496,7 +4532,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:279
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:274
msgid "BOM actions"
msgstr ""
@@ -4548,7 +4584,7 @@ msgstr ""
msgid "Top level part category"
msgstr ""
-#: part/templates/part/category.html:114 part/templates/part/category.html:205
+#: part/templates/part/category.html:114 part/templates/part/category.html:202
#: part/templates/part/category_sidebar.html:7
msgid "Subcategories"
msgstr ""
@@ -4557,55 +4593,51 @@ msgstr ""
msgid "Parts (Including subcategories)"
msgstr ""
-#: part/templates/part/category.html:156
-msgid "Export Part Data"
-msgstr ""
-
-#: part/templates/part/category.html:157 part/templates/part/category.html:181
-msgid "Export"
-msgstr ""
-
-#: part/templates/part/category.html:160
+#: part/templates/part/category.html:157
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:161 templates/js/translated/bom.js:365
+#: part/templates/part/category.html:158 templates/js/translated/bom.js:365
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:175
+#: part/templates/part/category.html:172
msgid "Set category"
msgstr ""
-#: part/templates/part/category.html:175
+#: part/templates/part/category.html:172
msgid "Set Category"
msgstr ""
-#: part/templates/part/category.html:179
+#: part/templates/part/category.html:176
msgid "Print Labels"
msgstr ""
-#: part/templates/part/category.html:181
+#: part/templates/part/category.html:178
+msgid "Export"
+msgstr ""
+
+#: part/templates/part/category.html:178
msgid "Export Data"
msgstr ""
-#: part/templates/part/category.html:195
+#: part/templates/part/category.html:192
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:288
+#: part/templates/part/category.html:285
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:315
+#: part/templates/part/category.html:305
msgid "Create Part"
msgstr ""
-#: part/templates/part/category.html:318
+#: part/templates/part/category.html:308
msgid "Create another part after this one"
msgstr ""
-#: part/templates/part/category.html:319
+#: part/templates/part/category.html:309
msgid "Part created successfully"
msgstr ""
@@ -4676,155 +4708,150 @@ msgstr ""
msgid "Part Stock"
msgstr ""
-#: part/templates/part/detail.html:33
-#, python-format
-msgid "Showing stock for all variants of %(full_name)s"
-msgstr ""
-
-#: part/templates/part/detail.html:43
+#: part/templates/part/detail.html:38
msgid "Part Stock Allocations"
msgstr ""
-#: part/templates/part/detail.html:60
+#: part/templates/part/detail.html:55
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:65
+#: part/templates/part/detail.html:60
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:122
+#: part/templates/part/detail.html:117
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:168
+#: part/templates/part/detail.html:163
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:172
+#: part/templates/part/detail.html:167
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:173
+#: part/templates/part/detail.html:168
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:200
+#: part/templates/part/detail.html:195
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:237 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:52
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:241 part/templates/part/detail.html:242
+#: part/templates/part/detail.html:236 part/templates/part/detail.html:237
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:262 part/templates/part/part_sidebar.html:18
+#: part/templates/part/detail.html:257 part/templates/part/part_sidebar.html:18
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:267
+#: part/templates/part/detail.html:262
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:271 templates/js/translated/bom.js:283
+#: part/templates/part/detail.html:266 templates/js/translated/bom.js:283
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:268
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:283
+#: part/templates/part/detail.html:278
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:285 templates/js/translated/part.js:272
+#: part/templates/part/detail.html:279 templates/js/translated/part.js:272
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:287
+#: part/templates/part/detail.html:280
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:285
msgid "New BOM Item"
msgstr ""
-#: part/templates/part/detail.html:293
+#: part/templates/part/detail.html:286
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:306
+#: part/templates/part/detail.html:299
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:323
+#: part/templates/part/detail.html:316
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:348
+#: part/templates/part/detail.html:341
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:363
+#: part/templates/part/detail.html:356
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:391
+#: part/templates/part/detail.html:384
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:407
+#: part/templates/part/detail.html:400
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:589
+#: part/templates/part/detail.html:582
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:590
+#: part/templates/part/detail.html:583
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:639
+#: part/templates/part/detail.html:632
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:696
+#: part/templates/part/detail.html:689
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:704
+#: part/templates/part/detail.html:697
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:801
+#: part/templates/part/detail.html:794
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:858
+#: part/templates/part/detail.html:844
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:971
+#: part/templates/part/detail.html:957
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:983
+#: part/templates/part/detail.html:969
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:995
+#: part/templates/part/detail.html:981
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1084
+#: part/templates/part/detail.html:1070
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4969,7 +4996,7 @@ msgstr ""
#: templates/js/translated/company.js:508
#: templates/js/translated/company.js:765
#: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:533 templates/js/translated/part.js:610
+#: templates/js/translated/part.js:534 templates/js/translated/part.js:611
msgid "Inactive"
msgstr ""
@@ -4983,7 +5010,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2356
+#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2444
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5000,12 +5027,12 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:903
+#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:901
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1154
-#: templates/js/translated/part.js:1327
+#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1155
+#: templates/js/translated/part.js:1328
msgid "Building"
msgstr ""
@@ -5057,7 +5084,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:857
+#: templates/js/translated/bom.js:855
msgid "No supplier pricing available"
msgstr ""
@@ -5177,7 +5204,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:851
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849
msgid "Supplier Cost"
msgstr ""
@@ -5199,7 +5226,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1390
+#: part/templates/part/prices.html:215 part/views.py:1325
msgid "Add Internal Price Break"
msgstr ""
@@ -5219,9 +5246,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813
-#: templates/js/translated/part.js:497 templates/js/translated/part.js:1144
-#: templates/js/translated/part.js:1331
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811
+#: templates/js/translated/part.js:498 templates/js/translated/part.js:1145
+#: templates/js/translated/part.js:1332
msgid "No Stock"
msgstr ""
@@ -5275,100 +5302,100 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:172
+#: part/templatetags/inventree_extras.py:174
msgid "Unknown database"
msgstr ""
-#: part/views.py:90
+#: part/views.py:88
msgid "Set Part Category"
msgstr ""
-#: part/views.py:140
+#: part/views.py:138
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:212
+#: part/views.py:210
msgid "Match References"
msgstr ""
-#: part/views.py:509
+#: part/views.py:507
msgid "None"
msgstr ""
-#: part/views.py:568
+#: part/views.py:566
msgid "Part QR Code"
msgstr ""
-#: part/views.py:670
+#: part/views.py:668
msgid "Select Part Image"
msgstr ""
-#: part/views.py:696
+#: part/views.py:694
msgid "Updated part image"
msgstr ""
-#: part/views.py:699
+#: part/views.py:697
msgid "Part image not found"
msgstr ""
-#: part/views.py:850
+#: part/views.py:785
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:857
+#: part/views.py:792
msgid "Part was deleted"
msgstr ""
-#: part/views.py:866
+#: part/views.py:801
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1015
+#: part/views.py:950
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1025
+#: part/views.py:960
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1032
+#: part/views.py:967
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1091 templates/js/translated/part.js:315
+#: part/views.py:1026 templates/js/translated/part.js:315
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1129
+#: part/views.py:1064
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1135
+#: part/views.py:1070
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1144
+#: part/views.py:1079
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1245
+#: part/views.py:1180
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1301
+#: part/views.py:1236
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1323
+#: part/views.py:1258
msgid "Added new price break"
msgstr ""
-#: part/views.py:1399
+#: part/views.py:1334
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1407
+#: part/views.py:1342
msgid "Delete Internal Price Break"
msgstr ""
@@ -5574,12 +5601,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:556 stock/templates/stock/item_base.html:151
-#: templates/js/translated/build.js:373 templates/js/translated/build.js:521
-#: templates/js/translated/build.js:919 templates/js/translated/build.js:1295
+#: stock/models.py:608 stock/templates/stock/item_base.html:151
+#: templates/js/translated/build.js:374 templates/js/translated/build.js:522
+#: templates/js/translated/build.js:920 templates/js/translated/build.js:1296
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:99 templates/js/translated/order.js:2062
-#: templates/js/translated/order.js:2151 templates/js/translated/stock.js:423
+#: templates/js/translated/order.js:99 templates/js/translated/order.js:2150
+#: templates/js/translated/order.js:2239 templates/js/translated/stock.js:422
msgid "Serial Number"
msgstr ""
@@ -5588,19 +5615,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:2052
+#: stock/models.py:2104
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:2058
+#: stock/models.py:2110
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:50
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:924 templates/js/translated/stock.js:2657
+#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2613
msgid "Date"
msgstr ""
@@ -5618,26 +5645,26 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756
-#: templates/js/translated/stock.js:2910
+#: templates/js/translated/stock.js:542 templates/js/translated/stock.js:712
+#: templates/js/translated/stock.js:2866
msgid "Serial"
msgstr ""
-#: stock/api.py:501
+#: stock/api.py:503
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:508
+#: stock/api.py:510
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:533
+#: stock/api.py:535
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/forms.py:74 stock/forms.py:198 stock/models.py:613
+#: stock/forms.py:74 stock/forms.py:198 stock/models.py:665
#: stock/templates/stock/item_base.html:188
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1791
msgid "Expiry Date"
msgstr ""
@@ -5677,228 +5704,228 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:62 stock/models.py:650
+#: stock/models.py:62 stock/models.py:702
#: stock/templates/stock/item_base.html:402
msgid "Owner"
msgstr ""
-#: stock/models.py:63 stock/models.py:651
+#: stock/models.py:63 stock/models.py:703
msgid "Select Owner"
msgstr ""
-#: stock/models.py:375
+#: stock/models.py:427
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:463
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:421 stock/models.py:430
+#: stock/models.py:473 stock/models.py:482
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:422
+#: stock/models.py:474
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:444
+#: stock/models.py:496
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:450
+#: stock/models.py:502
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:457
+#: stock/models.py:509
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:500
+#: stock/models.py:552
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:509
+#: stock/models.py:561
msgid "Base part"
msgstr ""
-#: stock/models.py:517
+#: stock/models.py:569
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:523 stock/templates/stock/location.html:16
+#: stock/models.py:575 stock/templates/stock/location.html:16
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:526
+#: stock/models.py:578
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:585
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:539 stock/templates/stock/item_base.html:277
+#: stock/models.py:591 stock/templates/stock/item_base.html:277
msgid "Installed In"
msgstr ""
-#: stock/models.py:542
+#: stock/models.py:594
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:558
+#: stock/models.py:610
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:572
+#: stock/models.py:624
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:576
+#: stock/models.py:628
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:585
+#: stock/models.py:637
msgid "Source Build"
msgstr ""
-#: stock/models.py:587
+#: stock/models.py:639
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:598
+#: stock/models.py:650
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:601
+#: stock/models.py:653
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:607
+#: stock/models.py:659
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:614
+#: stock/models.py:666
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:627
+#: stock/models.py:679
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:627
+#: stock/models.py:679
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:637 stock/templates/stock/item.html:121
+#: stock/models.py:689 stock/templates/stock/item.html:121
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:646
+#: stock/models.py:698
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1171
+#: stock/models.py:1223
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1177
+#: stock/models.py:1229
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1183
+#: stock/models.py:1235
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1186
+#: stock/models.py:1238
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1189
+#: stock/models.py:1241
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1196
+#: stock/models.py:1248
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1267
+#: stock/models.py:1319
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1270
+#: stock/models.py:1322
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1273
+#: stock/models.py:1325
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1276
+#: stock/models.py:1328
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1279
+#: stock/models.py:1331
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1282
+#: stock/models.py:1334
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1289 stock/serializers.py:832
+#: stock/models.py:1341 stock/serializers.py:832
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1293
+#: stock/models.py:1345
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1297
+#: stock/models.py:1349
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1301
+#: stock/models.py:1353
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1473
+#: stock/models.py:1525
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1972
+#: stock/models.py:2024
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2029
+#: stock/models.py:2081
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2035
+#: stock/models.py:2087
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2053
+#: stock/models.py:2105
msgid "Test name"
msgstr ""
-#: stock/models.py:2059
+#: stock/models.py:2111
msgid "Test result"
msgstr ""
-#: stock/models.py:2065
+#: stock/models.py:2117
msgid "Test output value"
msgstr ""
-#: stock/models.py:2072
+#: stock/models.py:2124
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2078
+#: stock/models.py:2130
msgid "Test notes"
msgstr ""
@@ -5935,7 +5962,7 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:363 stock/views.py:1127
+#: stock/serializers.py:363 stock/views.py:1009
msgid "Serial numbers already exist"
msgstr ""
@@ -6052,11 +6079,11 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:147 templates/js/translated/stock.js:3019
+#: stock/templates/stock/item.html:147 templates/js/translated/stock.js:2975
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1479
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1435
msgid "Add Test Result"
msgstr ""
@@ -6070,7 +6097,7 @@ msgstr ""
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:46 templates/stock_table.html:24
+#: stock/templates/stock/item_base.html:46 templates/stock_table.html:21
msgid "Scan to Location"
msgstr ""
@@ -6083,15 +6110,15 @@ msgid "Stock adjustment actions"
msgstr ""
#: stock/templates/stock/item_base.html:69
-#: stock/templates/stock/location.html:52 templates/stock_table.html:50
+#: stock/templates/stock/location.html:52 templates/stock_table.html:47
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48
+#: stock/templates/stock/item_base.html:72 templates/stock_table.html:45
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49
+#: stock/templates/stock/item_base.html:75 templates/stock_table.html:46
msgid "Remove stock"
msgstr ""
@@ -6100,11 +6127,11 @@ msgid "Serialize stock"
msgstr ""
#: stock/templates/stock/item_base.html:82
-#: stock/templates/stock/location.html:58 templates/stock_table.html:51
+#: stock/templates/stock/location.html:58 templates/stock_table.html:48
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85 templates/stock_table.html:54
+#: stock/templates/stock/item_base.html:85 templates/stock_table.html:51
msgid "Assign to customer"
msgstr ""
@@ -6181,7 +6208,7 @@ msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:201
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1807
msgid "Last Updated"
msgstr ""
@@ -6218,7 +6245,7 @@ msgid "This stock item is serialized - it has a unique serial number and the qua
msgstr ""
#: stock/templates/stock/item_base.html:296
-#: templates/js/translated/build.js:1317
+#: templates/js/translated/build.js:1318
msgid "No location set"
msgstr ""
@@ -6320,11 +6347,11 @@ msgstr ""
msgid "Stock Locations"
msgstr ""
-#: stock/templates/stock/location.html:185 templates/stock_table.html:30
+#: stock/templates/stock/location.html:185 templates/stock_table.html:27
msgid "Printing Actions"
msgstr ""
-#: stock/templates/stock/location.html:189 templates/stock_table.html:34
+#: stock/templates/stock/location.html:189 templates/stock_table.html:31
msgid "Print labels"
msgstr ""
@@ -6348,7 +6375,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:749
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:631
msgid "Convert Stock Item"
msgstr ""
@@ -6369,95 +6396,95 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181 templates/js/translated/stock.js:139
+#: stock/views.py:152 templates/js/translated/stock.js:138
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:728 stock/views.py:854 stock/views.py:1136
+#: stock/views.py:259 stock/views.py:610 stock/views.py:736 stock/views.py:1018
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:274
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:293
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:302
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:342
+#: stock/views.py:313
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:353
+#: stock/views.py:324
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:370
+#: stock/views.py:341
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:371
+#: stock/views.py:342
msgid "Check the confirmation box"
msgstr ""
-#: stock/views.py:475
+#: stock/views.py:357
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:500
+#: stock/views.py:382
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:597 templates/js/translated/stock.js:1074
+#: stock/views.py:479 templates/js/translated/stock.js:1030
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:608
+#: stock/views.py:490
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:630 templates/js/translated/stock.js:332
+#: stock/views.py:512 templates/js/translated/stock.js:331
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:780
+#: stock/views.py:662
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:881
+#: stock/views.py:763
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1023 templates/js/translated/stock.js:312
+#: stock/views.py:905 templates/js/translated/stock.js:311
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1105
+#: stock/views.py:987
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1205
+#: stock/views.py:1087
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1218
+#: stock/views.py:1100
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1229
+#: stock/views.py:1111
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1236
+#: stock/views.py:1118
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1245
+#: stock/views.py:1127
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -7381,14 +7408,14 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1335
+#: templates/js/translated/bom.js:1340
msgid "Required Quantity"
msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:804 templates/js/translated/build.js:1411
-#: templates/js/translated/build.js:2057
+#: templates/js/translated/bom.js:802 templates/js/translated/build.js:1412
+#: templates/js/translated/build.js:2110
#: templates/js/translated/table_filters.js:178
msgid "Available"
msgstr ""
@@ -7580,7 +7607,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:982
msgid "Remove stock item"
msgstr ""
@@ -7635,12 +7662,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286
-#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518
+#: templates/js/translated/order.js:429 templates/js/translated/tables.js:53
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519
+#: templates/js/translated/order.js:430
msgid "Select file format"
msgstr ""
@@ -7716,275 +7743,307 @@ msgstr ""
msgid "Edit BOM Item Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:741
+#: templates/js/translated/bom.js:739
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:745 templates/js/translated/build.js:1393
+#: templates/js/translated/bom.js:743 templates/js/translated/build.js:1394
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:750
+#: templates/js/translated/bom.js:748
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:822
+#: templates/js/translated/bom.js:820
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:837
+#: templates/js/translated/bom.js:835
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:844
+#: templates/js/translated/bom.js:842
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:893 templates/js/translated/bom.js:982
+#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:953
+#: templates/js/translated/bom.js:951
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:955
+#: templates/js/translated/bom.js:953
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:957
+#: templates/js/translated/bom.js:955
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138
+#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:961 templates/js/translated/bom.js:1121
+#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1060 templates/js/translated/build.js:1137
+#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1138
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1116
+#: templates/js/translated/bom.js:1121
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:1318 templates/js/translated/build.js:1377
+#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1378
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1340
+#: templates/js/translated/bom.js:1345
msgid "Inherited from parent BOM"
msgstr ""
-#: templates/js/translated/build.js:85
+#: templates/js/translated/build.js:86
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:119
+#: templates/js/translated/build.js:120
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:140
+#: templates/js/translated/build.js:141
msgid "Build order is ready to be completed"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:146
msgid "Build Order is incomplete"
msgstr ""
-#: templates/js/translated/build.js:173
+#: templates/js/translated/build.js:174
msgid "Complete Build Order"
msgstr ""
-#: templates/js/translated/build.js:214 templates/js/translated/stock.js:92
-#: templates/js/translated/stock.js:181
+#: templates/js/translated/build.js:215 templates/js/translated/stock.js:91
+#: templates/js/translated/stock.js:180
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:216 templates/js/translated/stock.js:94
-#: templates/js/translated/stock.js:183
+#: templates/js/translated/build.js:217 templates/js/translated/stock.js:93
+#: templates/js/translated/stock.js:182
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/build.js:225
+#: templates/js/translated/build.js:226
msgid "The Bill of Materials contains trackable parts"
msgstr ""
-#: templates/js/translated/build.js:226
+#: templates/js/translated/build.js:227
msgid "Build outputs must be generated individually"
msgstr ""
-#: templates/js/translated/build.js:234
+#: templates/js/translated/build.js:235
msgid "Trackable parts can have serial numbers specified"
msgstr ""
-#: templates/js/translated/build.js:235
+#: templates/js/translated/build.js:236
msgid "Enter serial numbers to generate multiple single build outputs"
msgstr ""
-#: templates/js/translated/build.js:242
+#: templates/js/translated/build.js:243
msgid "Create Build Output"
msgstr ""
-#: templates/js/translated/build.js:273
+#: templates/js/translated/build.js:274
msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:284
+#: templates/js/translated/build.js:285
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:293
+#: templates/js/translated/build.js:294
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:301
+#: templates/js/translated/build.js:302
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:324
+#: templates/js/translated/build.js:325
msgid "Are you sure you wish to unallocate stock items from this build?"
msgstr ""
-#: templates/js/translated/build.js:342
+#: templates/js/translated/build.js:343
msgid "Unallocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:360 templates/js/translated/build.js:508
+#: templates/js/translated/build.js:361 templates/js/translated/build.js:509
msgid "Select Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:361 templates/js/translated/build.js:509
+#: templates/js/translated/build.js:362 templates/js/translated/build.js:510
msgid "At least one build output must be selected"
msgstr ""
-#: templates/js/translated/build.js:415 templates/js/translated/build.js:563
+#: templates/js/translated/build.js:416 templates/js/translated/build.js:564
msgid "Output"
msgstr ""
-#: templates/js/translated/build.js:431
+#: templates/js/translated/build.js:432
msgid "Complete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:576
+#: templates/js/translated/build.js:577
msgid "Delete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:665
+#: templates/js/translated/build.js:666
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:703 templates/js/translated/order.js:1965
+#: templates/js/translated/build.js:704 templates/js/translated/order.js:2053
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:885
+#: templates/js/translated/build.js:886
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1334 templates/js/translated/build.js:2068
-#: templates/js/translated/order.js:2099
+#: templates/js/translated/build.js:1335 templates/js/translated/build.js:2121
+#: templates/js/translated/order.js:2187
msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1336 templates/js/translated/build.js:2069
-#: templates/js/translated/order.js:2100
+#: templates/js/translated/build.js:1337 templates/js/translated/build.js:2122
+#: templates/js/translated/order.js:2188
msgid "Delete stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1354
+#: templates/js/translated/build.js:1355
msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:1364
+#: templates/js/translated/build.js:1365
msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:1389
+#: templates/js/translated/build.js:1390
msgid "Substitute parts available"
msgstr ""
-#: templates/js/translated/build.js:1406
+#: templates/js/translated/build.js:1407
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1416 templates/js/translated/build.js:1656
-#: templates/js/translated/build.js:2064 templates/js/translated/order.js:2366
+#: templates/js/translated/build.js:1417 templates/js/translated/build.js:1667
+#: templates/js/translated/build.js:2117 templates/js/translated/order.js:2454
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1472 templates/js/translated/order.js:2446
+#: templates/js/translated/build.js:1473 templates/js/translated/order.js:2534
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:1476 templates/stock_table.html:53
+#: templates/js/translated/build.js:1477 templates/stock_table.html:50
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1479 templates/js/translated/order.js:2439
+#: templates/js/translated/build.js:1480 templates/js/translated/order.js:2527
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:1558 templates/js/translated/order.js:1616
-msgid "Specify stock allocation quantity"
-msgstr ""
-
-#: templates/js/translated/build.js:1629 templates/js/translated/label.js:134
-#: templates/js/translated/order.js:1667 templates/js/translated/report.js:225
+#: templates/js/translated/build.js:1519 templates/js/translated/label.js:134
+#: templates/js/translated/order.js:1755 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1630 templates/js/translated/order.js:1668
+#: templates/js/translated/build.js:1520 templates/js/translated/order.js:1756
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:1644 templates/js/translated/order.js:1682
+#: templates/js/translated/build.js:1569 templates/js/translated/order.js:1704
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:1640
+msgid "All Parts Allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:1641
+msgid "All selected parts have been fully allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:1655 templates/js/translated/order.js:1770
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1717
+#: templates/js/translated/build.js:1684 templates/js/translated/order.js:1805
msgid "Confirm stock allocation"
msgstr "Подтвердите выделение запасов"
-#: templates/js/translated/build.js:1674
+#: templates/js/translated/build.js:1685
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1730
+#: templates/js/translated/build.js:1696 templates/js/translated/order.js:1818
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1757 templates/js/translated/order.js:1807
+#: templates/js/translated/build.js:1768 templates/js/translated/order.js:1895
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1875
+#: templates/js/translated/build.js:1865
+msgid "Automatic Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1866
+msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
+msgstr ""
+
+#: templates/js/translated/build.js:1868
+msgid "If a location is specifed, stock will only be allocated from that location"
+msgstr ""
+
+#: templates/js/translated/build.js:1869
+msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
+msgstr ""
+
+#: templates/js/translated/build.js:1870
+msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
+msgstr ""
+
+#: templates/js/translated/build.js:1890
+msgid "Allocate Stock Items"
+msgstr ""
+
+#: templates/js/translated/build.js:1928
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1892 templates/js/translated/part.js:1235
-#: templates/js/translated/part.js:1646 templates/js/translated/stock.js:1643
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/build.js:1945 templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1647 templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:2567
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1912
+#: templates/js/translated/build.js:1965
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1976 templates/js/translated/stock.js:2823
+#: templates/js/translated/build.js:2029 templates/js/translated/stock.js:2779
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1988
+#: templates/js/translated/build.js:2041
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:2045
+#: templates/js/translated/build.js:2098
msgid "No parts allocated for"
msgstr ""
@@ -8049,34 +8108,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:517
-#: templates/js/translated/part.js:602
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:518
+#: templates/js/translated/part.js:603
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:521
-#: templates/js/translated/part.js:606
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:522
+#: templates/js/translated/part.js:607
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:696
+#: templates/js/translated/company.js:631 templates/js/translated/part.js:697
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:738
+#: templates/js/translated/company.js:668 templates/js/translated/part.js:739
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:739
+#: templates/js/translated/company.js:669 templates/js/translated/part.js:740
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:756
+#: templates/js/translated/company.js:688 templates/js/translated/part.js:757
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:768
+#: templates/js/translated/company.js:699 templates/js/translated/part.js:769
msgid "Delete Parameter"
msgstr ""
@@ -8085,12 +8144,12 @@ msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:429
+#: templates/js/translated/filters.js:441
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:430
+#: templates/js/translated/filters.js:442
msgid "false"
msgstr ""
@@ -8098,19 +8157,23 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:286
+#: templates/js/translated/filters.js:288
+msgid "Download data"
+msgstr ""
+
+#: templates/js/translated/filters.js:291
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:290
+#: templates/js/translated/filters.js:295
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:293
+#: templates/js/translated/filters.js:298
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:338
+#: templates/js/translated/filters.js:350
msgid "Create filter"
msgstr ""
@@ -8181,7 +8244,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1050
+#: templates/js/translated/stock.js:1006
msgid "Select Stock Items"
msgstr ""
@@ -8354,206 +8417,214 @@ msgstr ""
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:366
+#: templates/js/translated/order.js:426
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:460
+#: templates/js/translated/order.js:520
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:461
+#: templates/js/translated/order.js:521
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:481 templates/js/translated/order.js:580
+#: templates/js/translated/order.js:541 templates/js/translated/order.js:640
msgid "Add batch code"
msgstr ""
-#: templates/js/translated/order.js:487 templates/js/translated/order.js:591
+#: templates/js/translated/order.js:547 templates/js/translated/order.js:651
msgid "Add serial numbers"
msgstr ""
-#: templates/js/translated/order.js:499
+#: templates/js/translated/order.js:559
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:563 templates/js/translated/stock.js:2263
+#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2219
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:652
+#: templates/js/translated/order.js:712
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:653
+#: templates/js/translated/order.js:713
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:655
+#: templates/js/translated/order.js:715
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/order.js:674
+#: templates/js/translated/order.js:734
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:675
+#: templates/js/translated/order.js:735
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:865 templates/js/translated/part.js:809
+#: templates/js/translated/order.js:925 templates/js/translated/part.js:810
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:890 templates/js/translated/order.js:1338
+#: templates/js/translated/order.js:950 templates/js/translated/order.js:1426
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:1018 templates/js/translated/order.js:2496
+#: templates/js/translated/order.js:1074 templates/js/translated/order.js:2585
+msgid "Duplicate Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:1104 templates/js/translated/order.js:2607
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1030 templates/js/translated/order.js:2507
+#: templates/js/translated/order.js:1117 templates/js/translated/order.js:2618
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:1073
+#: templates/js/translated/order.js:1160
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:1100 templates/js/translated/order.js:2255
+#: templates/js/translated/order.js:1187 templates/js/translated/order.js:2343
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:1154 templates/js/translated/order.js:2280
-#: templates/js/translated/part.js:1863 templates/js/translated/part.js:2074
+#: templates/js/translated/order.js:1241 templates/js/translated/order.js:2368
+#: templates/js/translated/part.js:1864 templates/js/translated/part.js:2075
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1169 templates/js/translated/order.js:2296
+#: templates/js/translated/order.js:1256 templates/js/translated/order.js:2384
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:1210 templates/js/translated/order.js:2338
-#: templates/js/translated/part.js:918
+#: templates/js/translated/order.js:1297 templates/js/translated/order.js:2426
+#: templates/js/translated/part.js:919
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:1269 templates/js/translated/part.js:964
+#: templates/js/translated/order.js:1356 templates/js/translated/part.js:965
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1273 templates/js/translated/order.js:2452
+#: templates/js/translated/order.js:1360 templates/js/translated/order.js:2540
+msgid "Duplicate line item"
+msgstr ""
+
+#: templates/js/translated/order.js:1361 templates/js/translated/order.js:2541
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:1274 templates/js/translated/order.js:2456
+#: templates/js/translated/order.js:1362 templates/js/translated/order.js:2545
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1314
+#: templates/js/translated/order.js:1402
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1352
+#: templates/js/translated/order.js:1440
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1439
+#: templates/js/translated/order.js:1527
msgid "Edit shipment"
msgstr ""
-#: templates/js/translated/order.js:1442
+#: templates/js/translated/order.js:1530
msgid "Complete shipment"
msgstr ""
-#: templates/js/translated/order.js:1447
+#: templates/js/translated/order.js:1535
msgid "Delete shipment"
msgstr ""
-#: templates/js/translated/order.js:1467
+#: templates/js/translated/order.js:1555
msgid "Edit Shipment"
msgstr ""
-#: templates/js/translated/order.js:1484
+#: templates/js/translated/order.js:1572
msgid "Delete Shipment"
msgstr ""
-#: templates/js/translated/order.js:1518
+#: templates/js/translated/order.js:1606
msgid "No matching shipments found"
msgstr ""
-#: templates/js/translated/order.js:1528
+#: templates/js/translated/order.js:1616
msgid "Shipment Reference"
msgstr ""
-#: templates/js/translated/order.js:1552
+#: templates/js/translated/order.js:1640
msgid "Not shipped"
msgstr ""
-#: templates/js/translated/order.js:1558
+#: templates/js/translated/order.js:1646
msgid "Tracking"
msgstr ""
-#: templates/js/translated/order.js:1718
+#: templates/js/translated/order.js:1806
msgid "Allocate Stock Items to Sales Order"
msgstr ""
-#: templates/js/translated/order.js:1926
+#: templates/js/translated/order.js:2014
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:2015
+#: templates/js/translated/order.js:2103
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:2032
+#: templates/js/translated/order.js:2120
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:2033
+#: templates/js/translated/order.js:2121
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:2076 templates/js/translated/order.js:2165
-#: templates/js/translated/stock.js:1559
+#: templates/js/translated/order.js:2164 templates/js/translated/order.js:2253
+#: templates/js/translated/stock.js:1515
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/order.js:2084 templates/js/translated/order.js:2174
+#: templates/js/translated/order.js:2172 templates/js/translated/order.js:2262
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:2436
+#: templates/js/translated/order.js:2524
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:2442
+#: templates/js/translated/order.js:2530
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:2449 templates/js/translated/order.js:2616
+#: templates/js/translated/order.js:2537 templates/js/translated/order.js:2727
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:2460
+#: templates/js/translated/order.js:2549
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:2463
+#: templates/js/translated/order.js:2552
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:2522
+#: templates/js/translated/order.js:2633
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:2624
+#: templates/js/translated/order.js:2735
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:2638
+#: templates/js/translated/order.js:2749
msgid "No matching line items"
msgstr ""
@@ -8677,117 +8748,117 @@ msgstr ""
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:481
+#: templates/js/translated/part.js:482
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:509 templates/js/translated/part.js:594
+#: templates/js/translated/part.js:510 templates/js/translated/part.js:595
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:513 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:514 templates/js/translated/part.js:599
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:525
+#: templates/js/translated/part.js:526
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:529
+#: templates/js/translated/part.js:530
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:644
+#: templates/js/translated/part.js:645
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1034
+#: templates/js/translated/part.js:1035
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1058
+#: templates/js/translated/part.js:1059
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1125 templates/js/translated/part.js:1385
+#: templates/js/translated/part.js:1126 templates/js/translated/part.js:1386
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1295
+#: templates/js/translated/part.js:1296
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1318
+#: templates/js/translated/part.js:1319
#: templates/js/translated/table_filters.js:425
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1409 templates/js/translated/part.js:1581
-#: templates/js/translated/stock.js:2572
+#: templates/js/translated/part.js:1410 templates/js/translated/part.js:1582
+#: templates/js/translated/stock.js:2528
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1425
+#: templates/js/translated/part.js:1426
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1600 templates/js/translated/stock.js:2591
+#: templates/js/translated/part.js:1601 templates/js/translated/stock.js:2547
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1664
+#: templates/js/translated/part.js:1665
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1678 templates/js/translated/stock.js:2635
+#: templates/js/translated/part.js:1679 templates/js/translated/stock.js:2591
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1722
+#: templates/js/translated/part.js:1723
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1773 templates/js/translated/stock.js:1270
+#: templates/js/translated/part.js:1774 templates/js/translated/stock.js:1226
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1774 templates/js/translated/stock.js:1271
-#: templates/js/translated/stock.js:1517
+#: templates/js/translated/part.js:1775 templates/js/translated/stock.js:1227
+#: templates/js/translated/stock.js:1473
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1780
+#: templates/js/translated/part.js:1781
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1802
+#: templates/js/translated/part.js:1803
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1816
+#: templates/js/translated/part.js:1817
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1841
+#: templates/js/translated/part.js:1842
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1896
+#: templates/js/translated/part.js:1897
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1897
+#: templates/js/translated/part.js:1898
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1998
+#: templates/js/translated/part.js:1999
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:2017
+#: templates/js/translated/part.js:2018
msgid "Single Price Difference"
msgstr ""
@@ -8861,368 +8932,356 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:102
+#: templates/js/translated/stock.js:101
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:111
+#: templates/js/translated/stock.js:110
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:154
+#: templates/js/translated/stock.js:153
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:194
+#: templates/js/translated/stock.js:193
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:233
+#: templates/js/translated/stock.js:232
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/stock.js:238
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:381
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:395
+#: templates/js/translated/stock.js:394
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:420
+#: templates/js/translated/stock.js:419
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425
+#: templates/js/translated/stock.js:423 templates/js/translated/stock.js:424
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:441
+#: templates/js/translated/stock.js:440
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:461
+#: templates/js/translated/stock.js:460
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:470
+#: templates/js/translated/stock.js:469
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:515
-msgid "Export Stock"
-msgstr ""
-
-#: templates/js/translated/stock.js:526
-msgid "Include Sublocations"
-msgstr ""
-
-#: templates/js/translated/stock.js:527
-msgid "Include stock items in sublocations"
-msgstr ""
-
-#: templates/js/translated/stock.js:636
+#: templates/js/translated/stock.js:592
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:637
+#: templates/js/translated/stock.js:593
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:714
+#: templates/js/translated/stock.js:670
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:715
+#: templates/js/translated/stock.js:671
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:717
+#: templates/js/translated/stock.js:673
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:718
+#: templates/js/translated/stock.js:674
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:804
+#: templates/js/translated/stock.js:760
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:805
+#: templates/js/translated/stock.js:761
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:900
+#: templates/js/translated/stock.js:856
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:901
+#: templates/js/translated/stock.js:857
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:907
+#: templates/js/translated/stock.js:863
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:908
+#: templates/js/translated/stock.js:864
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:912
+#: templates/js/translated/stock.js:868
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:913
+#: templates/js/translated/stock.js:869
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:917
+#: templates/js/translated/stock.js:873
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:918 users/models.py:213
+#: templates/js/translated/stock.js:874 users/models.py:213
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:922
+#: templates/js/translated/stock.js:878
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1011
+#: templates/js/translated/stock.js:967
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1011
+#: templates/js/translated/stock.js:967
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1051
+#: templates/js/translated/stock.js:1007
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1209
+#: templates/js/translated/stock.js:1165
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1211
+#: templates/js/translated/stock.js:1167
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1216
+#: templates/js/translated/stock.js:1172
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1263
+#: templates/js/translated/stock.js:1219
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1266
+#: templates/js/translated/stock.js:1222
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1292
+#: templates/js/translated/stock.js:1248
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1348
+#: templates/js/translated/stock.js:1304
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1500
+#: templates/js/translated/stock.js:1456
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1522
+#: templates/js/translated/stock.js:1478
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1551
+#: templates/js/translated/stock.js:1507
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1511
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1563
+#: templates/js/translated/stock.js:1519
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1569
+#: templates/js/translated/stock.js:1525
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1727
+#: templates/js/translated/stock.js:1683
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1732
+#: templates/js/translated/stock.js:1688
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1691
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1739
+#: templates/js/translated/stock.js:1695
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1741
+#: templates/js/translated/stock.js:1697
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1747
+#: templates/js/translated/stock.js:1703
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1749
+#: templates/js/translated/stock.js:1705
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1751
+#: templates/js/translated/stock.js:1707
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1756
+#: templates/js/translated/stock.js:1712
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1763
+#: templates/js/translated/stock.js:1719
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1765
+#: templates/js/translated/stock.js:1721
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1767
+#: templates/js/translated/stock.js:1723
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1771
+#: templates/js/translated/stock.js:1727
#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1821
+#: templates/js/translated/stock.js:1777
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1903
+#: templates/js/translated/stock.js:1859
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1941
+#: templates/js/translated/stock.js:1897
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1962 templates/js/translated/stock.js:2010
+#: templates/js/translated/stock.js:1918 templates/js/translated/stock.js:1966
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:2050
+#: templates/js/translated/stock.js:2006
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:2077
+#: templates/js/translated/stock.js:2033
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:2079
+#: templates/js/translated/stock.js:2035
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:2278
+#: templates/js/translated/stock.js:2234
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2292
+#: templates/js/translated/stock.js:2248
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2293
+#: templates/js/translated/stock.js:2249
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2472
+#: templates/js/translated/stock.js:2428
msgid "Allocated Quantity"
msgstr ""
-#: templates/js/translated/stock.js:2682
+#: templates/js/translated/stock.js:2638
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2707
+#: templates/js/translated/stock.js:2663
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2726
+#: templates/js/translated/stock.js:2682
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2745
+#: templates/js/translated/stock.js:2701
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2763
+#: templates/js/translated/stock.js:2719
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2786
+#: templates/js/translated/stock.js:2742
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2794
+#: templates/js/translated/stock.js:2750
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2835
+#: templates/js/translated/stock.js:2791
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2836
+#: templates/js/translated/stock.js:2792
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2887
+#: templates/js/translated/stock.js:2843
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2938
+#: templates/js/translated/stock.js:2894
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2974
+#: templates/js/translated/stock.js:2930
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2975
+#: templates/js/translated/stock.js:2931
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2977
+#: templates/js/translated/stock.js:2933
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2978
+#: templates/js/translated/stock.js:2934
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2979
+#: templates/js/translated/stock.js:2935
msgid "The Stock Item is serialized and does not belong to another item"
msgstr ""
-#: templates/js/translated/stock.js:2992
+#: templates/js/translated/stock.js:2948
msgid "Select part to install"
msgstr ""
@@ -9429,60 +9488,68 @@ msgstr ""
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:368
+#: templates/js/translated/tables.js:50
+msgid "Export Table Data"
+msgstr ""
+
+#: templates/js/translated/tables.js:54
+msgid "Select File Format"
+msgstr ""
+
+#: templates/js/translated/tables.js:433
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:371
+#: templates/js/translated/tables.js:436
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:376
+#: templates/js/translated/tables.js:441
msgid "Showing all rows"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:382 templates/search_form.html:6
+#: templates/js/translated/tables.js:447 templates/search_form.html:6
#: templates/search_form.html:7
msgid "Search"
msgstr ""
-#: templates/js/translated/tables.js:385
+#: templates/js/translated/tables.js:450
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:388
+#: templates/js/translated/tables.js:453
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:391
+#: templates/js/translated/tables.js:456
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:394
+#: templates/js/translated/tables.js:459
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:397
+#: templates/js/translated/tables.js:462
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:400
+#: templates/js/translated/tables.js:465
msgid "All"
msgstr ""
@@ -9586,63 +9653,59 @@ msgstr ""
msgid "Email settings not configured"
msgstr ""
-#: templates/stock_table.html:14
-msgid "Export Stock Information"
-msgstr ""
-
-#: templates/stock_table.html:20
+#: templates/stock_table.html:17
msgid "Barcode Actions"
msgstr ""
-#: templates/stock_table.html:36
+#: templates/stock_table.html:33
msgid "Print test reports"
msgstr ""
-#: templates/stock_table.html:43
+#: templates/stock_table.html:40
msgid "Stock Options"
msgstr ""
-#: templates/stock_table.html:48
+#: templates/stock_table.html:45
msgid "Add to selected stock items"
msgstr ""
-#: templates/stock_table.html:49
+#: templates/stock_table.html:46
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:50
+#: templates/stock_table.html:47
msgid "Stocktake selected stock items"
msgstr ""
-#: templates/stock_table.html:51
+#: templates/stock_table.html:48
msgid "Move selected stock items"
msgstr ""
-#: templates/stock_table.html:52
+#: templates/stock_table.html:49
msgid "Merge selected stock items"
msgstr ""
-#: templates/stock_table.html:52
+#: templates/stock_table.html:49
msgid "Merge stock"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:50
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:52
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:52
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:55
msgid "Delete selected items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:55
msgid "Delete stock"
msgstr ""
diff --git a/InvenTree/locale/sv/LC_MESSAGES/django.po b/InvenTree/locale/sv/LC_MESSAGES/django.po
index b174d7ec13..8c4acc7c80 100644
--- a/InvenTree/locale/sv/LC_MESSAGES/django.po
+++ b/InvenTree/locale/sv/LC_MESSAGES/django.po
@@ -1,10 +1,10 @@
-#: templates/js/translated/order.js:2090
+#: templates/js/translated/order.js:2178
msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-03-01 13:34+0000\n"
-"PO-Revision-Date: 2022-03-01 14:09\n"
+"POT-Creation-Date: 2022-03-07 04:31+0000\n"
+"PO-Revision-Date: 2022-03-07 04:47\n"
"Last-Translator: \n"
"Language-Team: Swedish\n"
"Language: sv_SE\n"
@@ -86,7 +86,7 @@ msgid "Duplicate serial: {sn}"
msgstr ""
#: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435
-#: stock/views.py:1101
+#: stock/views.py:983
msgid "Invalid quantity provided"
msgstr "Ogiltigt antal angivet"
@@ -114,100 +114,100 @@ msgstr "Inga serienummer hittades"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:176
+#: InvenTree/models.py:185
msgid "Missing file"
msgstr ""
-#: InvenTree/models.py:177
+#: InvenTree/models.py:186
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:188 stock/models.py:2071
+#: InvenTree/models.py:197 stock/models.py:2123
#: templates/js/translated/attachment.js:119
msgid "Attachment"
msgstr "Bilaga"
-#: InvenTree/models.py:189
+#: InvenTree/models.py:198
msgid "Select file to attach"
msgstr "Välj fil att bifoga"
-#: InvenTree/models.py:195 company/models.py:131 company/models.py:348
+#: InvenTree/models.py:204 company/models.py:131 company/models.py:348
#: company/models.py:564 order/models.py:127 part/models.py:860
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1346
+#: templates/js/translated/company.js:829 templates/js/translated/part.js:1347
msgid "Link"
msgstr ""
-#: InvenTree/models.py:196 build/models.py:330 part/models.py:861
-#: stock/models.py:566
+#: InvenTree/models.py:205 build/models.py:332 part/models.py:861
+#: stock/models.py:618
msgid "Link to external URL"
msgstr ""
-#: InvenTree/models.py:199 templates/js/translated/attachment.js:163
+#: InvenTree/models.py:208 templates/js/translated/attachment.js:163
msgid "Comment"
msgstr "Kommentar"
-#: InvenTree/models.py:199
+#: InvenTree/models.py:208
msgid "File comment"
msgstr "Fil kommentar"
-#: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1277
+#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1277
#: common/models.py:1278 common/models.py:1506 common/models.py:1507
-#: part/models.py:2303 part/models.py:2323
+#: part/models.py:2317 part/models.py:2337
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2817
+#: templates/js/translated/stock.js:2773
msgid "User"
msgstr "Användare"
-#: InvenTree/models.py:209
+#: InvenTree/models.py:218
msgid "upload date"
msgstr "uppladdningsdatum"
-#: InvenTree/models.py:232
+#: InvenTree/models.py:241
msgid "Filename must not be empty"
msgstr "Filnamnet får inte vara tomt"
-#: InvenTree/models.py:255
+#: InvenTree/models.py:264
msgid "Invalid attachment directory"
msgstr "Ogiltig katalog för bilaga"
-#: InvenTree/models.py:265
+#: InvenTree/models.py:274
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Filnamnet innehåller ogiltiga tecken '{c}'"
-#: InvenTree/models.py:268
+#: InvenTree/models.py:277
msgid "Filename missing extension"
msgstr "Filnamn saknar ändelse"
-#: InvenTree/models.py:275
+#: InvenTree/models.py:284
msgid "Attachment with this filename already exists"
msgstr "Det finns redan en bilaga med detta filnamn"
-#: InvenTree/models.py:282
+#: InvenTree/models.py:291
msgid "Error renaming file"
msgstr "Fel vid namnbyte av fil"
-#: InvenTree/models.py:317
+#: InvenTree/models.py:326
msgid "Invalid choice"
msgstr "Ogiltigt val"
-#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1492
+#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1492
#: company/models.py:415 label/models.py:112 part/models.py:804
-#: part/models.py:2487 plugin/models.py:40 report/models.py:181
+#: part/models.py:2501 plugin/models.py:40 report/models.py:181
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:48
#: templates/InvenTree/settings/plugin.html:125
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:319
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:567
-#: templates/js/translated/part.js:706 templates/js/translated/part.js:1653
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/company.js:641 templates/js/translated/part.js:568
+#: templates/js/translated/part.js:707 templates/js/translated/part.js:1654
+#: templates/js/translated/stock.js:2573
msgid "Name"
msgstr "Namn"
-#: InvenTree/models.py:340 build/models.py:207
+#: InvenTree/models.py:349 build/models.py:209
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
@@ -219,28 +219,28 @@ msgstr "Namn"
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:92
#: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:765
-#: templates/js/translated/build.js:1920 templates/js/translated/company.js:345
+#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763
+#: templates/js/translated/build.js:1973 templates/js/translated/company.js:345
#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:911
-#: templates/js/translated/order.js:1105 templates/js/translated/order.js:1366
-#: templates/js/translated/part.js:626 templates/js/translated/part.js:1021
-#: templates/js/translated/part.js:1106 templates/js/translated/part.js:1276
-#: templates/js/translated/part.js:1672 templates/js/translated/part.js:1741
-#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2446
-#: templates/js/translated/stock.js:2629 templates/js/translated/stock.js:2667
+#: templates/js/translated/company.js:840 templates/js/translated/order.js:971
+#: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454
+#: templates/js/translated/part.js:627 templates/js/translated/part.js:1022
+#: templates/js/translated/part.js:1107 templates/js/translated/part.js:1277
+#: templates/js/translated/part.js:1673 templates/js/translated/part.js:1742
+#: templates/js/translated/stock.js:1656 templates/js/translated/stock.js:2402
+#: templates/js/translated/stock.js:2585 templates/js/translated/stock.js:2623
msgid "Description"
msgstr "Beskrivning"
-#: InvenTree/models.py:341
+#: InvenTree/models.py:350
msgid "Description (optional)"
msgstr "Beskrivning (valfritt)"
-#: InvenTree/models.py:349
+#: InvenTree/models.py:358
msgid "parent"
msgstr "överordnad"
-#: InvenTree/serializers.py:65 part/models.py:2805
+#: InvenTree/serializers.py:65 part/models.py:2820
msgid "Must be a valid number"
msgstr "Måste vara ett giltigt nummer"
@@ -294,87 +294,87 @@ msgstr ""
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:665
msgid "German"
msgstr "Tyska"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:666
msgid "Greek"
msgstr "Grekiska"
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:667
msgid "English"
msgstr "Engelska"
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:668
msgid "Spanish"
msgstr "Spanska"
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:669
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:670
msgid "French"
msgstr "Franska"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:671
msgid "Hebrew"
msgstr "Hebreiska"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:672
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:673
msgid "Italian"
msgstr "Italienska"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:674
msgid "Japanese"
msgstr "Japanska"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:675
msgid "Korean"
msgstr "Koreanska"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:676
msgid "Dutch"
msgstr "Nederländska"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:677
msgid "Norwegian"
msgstr "Norska"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:678
msgid "Polish"
msgstr "Polska"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:679
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:680
msgid "Russian"
msgstr "Ryska"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:681
msgid "Swedish"
msgstr "Svenska"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:682
msgid "Thai"
msgstr "Thailändska"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:683
msgid "Turkish"
msgstr "Turkiska"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:684
msgid "Vietnamese"
msgstr "Vietnamesiska"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:685
msgid "Chinese"
msgstr "Kinesiska"
@@ -421,7 +421,7 @@ msgid "Returned"
msgstr "Återlämnad"
#: InvenTree/status_codes.py:143 order/models.py:997
-#: templates/js/translated/order.js:2097 templates/js/translated/order.js:2394
+#: templates/js/translated/order.js:2185 templates/js/translated/order.js:2482
msgid "Shipped"
msgstr "Skickad"
@@ -501,7 +501,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2204
+#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2160
msgid "Merged stock items"
msgstr ""
@@ -593,43 +593,43 @@ msgstr ""
msgid "System Information"
msgstr ""
-#: barcodes/api.py:54 barcodes/api.py:152
+#: barcodes/api.py:55 barcodes/api.py:156
msgid "Must provide barcode_data parameter"
msgstr ""
-#: barcodes/api.py:128
+#: barcodes/api.py:132
msgid "No match found for barcode data"
msgstr ""
-#: barcodes/api.py:130
+#: barcodes/api.py:134
msgid "Match found for barcode data"
msgstr ""
-#: barcodes/api.py:155
+#: barcodes/api.py:159
msgid "Must provide stockitem parameter"
msgstr ""
-#: barcodes/api.py:162
+#: barcodes/api.py:166
msgid "No matching stock item found"
msgstr ""
-#: barcodes/api.py:193
+#: barcodes/api.py:197
msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:197
+#: barcodes/api.py:201
msgid "Barcode already matches Stock Location"
msgstr ""
-#: barcodes/api.py:201
+#: barcodes/api.py:205
msgid "Barcode already matches Part"
msgstr ""
-#: barcodes/api.py:207 barcodes/api.py:219
+#: barcodes/api.py:211 barcodes/api.py:223
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: barcodes/api.py:225
+#: barcodes/api.py:229
msgid "Barcode associated with Stock Item"
msgstr ""
@@ -641,18 +641,18 @@ msgstr ""
msgid "Confirm build cancellation"
msgstr ""
-#: build/models.py:133
+#: build/models.py:135
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:139 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:676 templates/js/translated/stock.js:2422
+#: templates/js/translated/build.js:677 templates/js/translated/stock.js:2378
msgid "Build Order"
msgstr ""
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:140 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:92
#: order/templates/order/so_sidebar.html:13
@@ -662,41 +662,41 @@ msgstr ""
msgid "Build Orders"
msgstr ""
-#: build/models.py:198
+#: build/models.py:200
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:213 order/models.py:563
-#: order/models.py:843 part/models.py:2716
+#: build/models.py:201 order/models.py:213 order/models.py:563
+#: order/models.py:843 part/models.py:2731
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:772 templates/js/translated/build.js:1401
-#: templates/js/translated/order.js:1136 templates/js/translated/order.js:2261
+#: templates/js/translated/bom.js:770 templates/js/translated/build.js:1402
+#: templates/js/translated/order.js:1223 templates/js/translated/order.js:2349
msgid "Reference"
msgstr ""
-#: build/models.py:210
+#: build/models.py:212
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:219 build/templates/build/build_base.html:169
+#: build/models.py:221 build/templates/build/build_base.html:169
#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:222
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:225 build/templates/build/build_base.html:77
+#: build/models.py:227 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
#: order/models.py:912 order/models.py:986
#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359
-#: part/models.py:2249 part/models.py:2265 part/models.py:2284
-#: part/models.py:2301 part/models.py:2403 part/models.py:2525
-#: part/models.py:2615 part/models.py:2691 part/models.py:2998
-#: part/serializers.py:666 part/templates/part/part_app_base.html:8
+#: part/models.py:2263 part/models.py:2279 part/models.py:2298
+#: part/models.py:2315 part/models.py:2417 part/models.py:2539
+#: part/models.py:2629 part/models.py:2706 part/models.py:3013
+#: part/serializers.py:669 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: part/templates/part/upload_bom.html:52
@@ -707,231 +707,231 @@ msgstr ""
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551
-#: templates/js/translated/bom.js:730 templates/js/translated/build.js:902
-#: templates/js/translated/build.js:1270 templates/js/translated/build.js:1655
-#: templates/js/translated/build.js:1925 templates/js/translated/company.js:492
+#: templates/js/translated/bom.js:728 templates/js/translated/build.js:903
+#: templates/js/translated/build.js:1271 templates/js/translated/build.js:1666
+#: templates/js/translated/build.js:1978 templates/js/translated/company.js:492
#: templates/js/translated/company.js:749 templates/js/translated/order.js:84
-#: templates/js/translated/order.js:651 templates/js/translated/order.js:1090
-#: templates/js/translated/order.js:1693 templates/js/translated/order.js:2050
-#: templates/js/translated/order.js:2245 templates/js/translated/part.js:1006
-#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1254
-#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1657
-#: templates/js/translated/stock.js:2892 templates/js/translated/stock.js:2991
+#: templates/js/translated/order.js:711 templates/js/translated/order.js:1177
+#: templates/js/translated/order.js:1781 templates/js/translated/order.js:2138
+#: templates/js/translated/order.js:2333 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1088 templates/js/translated/part.js:1255
+#: templates/js/translated/stock.js:518 templates/js/translated/stock.js:683
+#: templates/js/translated/stock.js:890 templates/js/translated/stock.js:1613
+#: templates/js/translated/stock.js:2848 templates/js/translated/stock.js:2947
msgid "Part"
msgstr ""
-#: build/models.py:233
+#: build/models.py:235
msgid "Select part to build"
msgstr ""
-#: build/models.py:238
+#: build/models.py:240
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:242
+#: build/models.py:244
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 templates/js/translated/build.js:1643
-#: templates/js/translated/order.js:1681
+#: build/models.py:249 build/serializers.py:729
+#: templates/js/translated/build.js:1654 templates/js/translated/order.js:1769
msgid "Source Location"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:256
+#: build/models.py:258
msgid "Destination Location"
msgstr ""
-#: build/models.py:260
+#: build/models.py:262
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:264
+#: build/models.py:266
msgid "Build Quantity"
msgstr ""
-#: build/models.py:267
+#: build/models.py:269
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:271
+#: build/models.py:273
msgid "Completed items"
msgstr ""
-#: build/models.py:273
+#: build/models.py:275
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:277 part/templates/part/part_base.html:234
+#: build/models.py:279 part/templates/part/part_base.html:234
msgid "Build Status"
msgstr ""
-#: build/models.py:281
+#: build/models.py:283
msgid "Build status code"
msgstr ""
-#: build/models.py:285 build/serializers.py:218 order/serializers.py:272
-#: stock/models.py:570 templates/js/translated/order.js:513
+#: build/models.py:287 build/serializers.py:218 order/serializers.py:272
+#: stock/models.py:622 templates/js/translated/order.js:573
msgid "Batch Code"
msgstr ""
-#: build/models.py:289 build/serializers.py:219
+#: build/models.py:291 build/serializers.py:219
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:129 part/models.py:999
-#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1379
+#: build/models.py:294 order/models.py:129 part/models.py:999
+#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1467
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:585
+#: build/models.py:298 order/models.py:585
msgid "Target completion date"
msgstr ""
-#: build/models.py:297
+#: build/models.py:299
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:255
-#: templates/js/translated/build.js:2002
+#: build/models.py:302 order/models.py:255
+#: templates/js/translated/build.js:2055
msgid "Completion Date"
msgstr ""
-#: build/models.py:306
+#: build/models.py:308
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:1970
+#: build/models.py:316 templates/js/translated/build.js:2023
msgid "Issued by"
msgstr ""
-#: build/models.py:315
+#: build/models.py:317
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:323 build/templates/build/build_base.html:190
+#: build/models.py:325 build/templates/build/build_base.html:190
#: build/templates/build/detail.html:116 order/models.py:143
#: order/templates/order/order_base.html:170
#: order/templates/order/sales_order_base.html:182 part/models.py:1003
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1982 templates/js/translated/order.js:945
+#: templates/js/translated/build.js:2035 templates/js/translated/order.js:1005
msgid "Responsible"
msgstr ""
-#: build/models.py:324
+#: build/models.py:326
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:329 build/templates/build/detail.html:102
+#: build/models.py:331 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:564
+#: part/templates/part/part_base.html:354 stock/models.py:616
#: stock/templates/stock/item_base.html:352
msgid "External Link"
msgstr ""
-#: build/models.py:334 build/serializers.py:381
+#: build/models.py:336 build/serializers.py:381
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
#: order/models.py:147 order/models.py:845 order/models.py:1107
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/models.py:988
-#: part/templates/part/detail.html:146 part/templates/part/part_sidebar.html:57
+#: part/templates/part/detail.html:141 part/templates/part/part_sidebar.html:57
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:137 stock/forms.py:171 stock/models.py:636
-#: stock/models.py:1971 stock/models.py:2077 stock/serializers.py:332
+#: stock/forms.py:137 stock/forms.py:171 stock/models.py:688
+#: stock/models.py:2023 stock/models.py:2129 stock/serializers.py:332
#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:936
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1257
-#: templates/js/translated/order.js:1562 templates/js/translated/order.js:2419
-#: templates/js/translated/stock.js:1344 templates/js/translated/stock.js:1935
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934
+#: templates/js/translated/company.js:845 templates/js/translated/order.js:1344
+#: templates/js/translated/order.js:1650 templates/js/translated/order.js:2507
+#: templates/js/translated/stock.js:1300 templates/js/translated/stock.js:1891
msgid "Notes"
msgstr ""
-#: build/models.py:335
+#: build/models.py:337
msgid "Extra build notes"
msgstr ""
-#: build/models.py:748
+#: build/models.py:750
msgid "No build output specified"
msgstr ""
-#: build/models.py:751
+#: build/models.py:753
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:754
+#: build/models.py:756
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1060
+#: build/models.py:1162
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1069
+#: build/models.py:1171
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1079
+#: build/models.py:1181
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1085 order/models.py:1225
+#: build/models.py:1187 order/models.py:1225
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1091
+#: build/models.py:1193
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1148
+#: build/models.py:1250
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1217 stock/templates/stock/item_base.html:324
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898
+#: build/models.py:1319 stock/templates/stock/item_base.html:324
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1951
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1218
+#: build/models.py:1320
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1234 build/serializers.py:576 order/serializers.py:783
+#: build/models.py:1336 build/serializers.py:576 order/serializers.py:783
#: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635
#: stock/serializers.py:753 stock/templates/stock/item_base.html:9
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:346
-#: templates/js/translated/build.js:687 templates/js/translated/build.js:692
-#: templates/js/translated/build.js:1657 templates/js/translated/build.js:2050
-#: templates/js/translated/order.js:85 templates/js/translated/order.js:1694
-#: templates/js/translated/order.js:1949 templates/js/translated/order.js:1954
-#: templates/js/translated/order.js:2057 templates/js/translated/order.js:2147
-#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728
-#: templates/js/translated/stock.js:2753
+#: templates/js/translated/build.js:688 templates/js/translated/build.js:693
+#: templates/js/translated/build.js:1668 templates/js/translated/build.js:2103
+#: templates/js/translated/order.js:85 templates/js/translated/order.js:1782
+#: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:2235
+#: templates/js/translated/stock.js:519 templates/js/translated/stock.js:684
+#: templates/js/translated/stock.js:2709
msgid "Stock Item"
msgstr ""
-#: build/models.py:1235
+#: build/models.py:1337
msgid "Source stock item"
msgstr ""
-#: build/models.py:1247 build/serializers.py:188
+#: build/models.py:1349 build/serializers.py:188
#: build/templates/build/build_base.html:82
#: build/templates/build/detail.html:35 common/models.py:1317
#: company/forms.py:42 company/templates/company/supplier_part.html:251
#: order/models.py:836 order/models.py:1265 order/serializers.py:903
#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144
-#: part/forms.py:160 part/forms.py:176 part/models.py:2707
-#: part/templates/part/detail.html:1008 part/templates/part/detail.html:1094
+#: part/forms.py:160 part/forms.py:176 part/models.py:2722
+#: part/templates/part/detail.html:994 part/templates/part/detail.html:1080
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_build_order_base.html:114
@@ -943,32 +943,32 @@ msgstr ""
#: stock/templates/stock/item_base.html:176
#: stock/templates/stock/item_base.html:241
#: stock/templates/stock/item_base.html:249
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:780
-#: templates/js/translated/build.js:375 templates/js/translated/build.js:523
-#: templates/js/translated/build.js:714 templates/js/translated/build.js:911
-#: templates/js/translated/build.js:921 templates/js/translated/build.js:1297
-#: templates/js/translated/build.js:1658
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778
+#: templates/js/translated/build.js:376 templates/js/translated/build.js:524
+#: templates/js/translated/build.js:715 templates/js/translated/build.js:912
+#: templates/js/translated/build.js:922 templates/js/translated/build.js:1298
+#: templates/js/translated/build.js:1669
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:101 templates/js/translated/order.js:1142
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:1976
-#: templates/js/translated/order.js:2064 templates/js/translated/order.js:2153
-#: templates/js/translated/order.js:2267 templates/js/translated/part.js:906
-#: templates/js/translated/part.js:1884 templates/js/translated/part.js:2007
-#: templates/js/translated/part.js:2085 templates/js/translated/stock.js:391
-#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758
-#: templates/js/translated/stock.js:2802 templates/js/translated/stock.js:2904
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:1229
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:2064
+#: templates/js/translated/order.js:2152 templates/js/translated/order.js:2241
+#: templates/js/translated/order.js:2355 templates/js/translated/part.js:907
+#: templates/js/translated/part.js:1885 templates/js/translated/part.js:2008
+#: templates/js/translated/part.js:2086 templates/js/translated/stock.js:390
+#: templates/js/translated/stock.js:544 templates/js/translated/stock.js:714
+#: templates/js/translated/stock.js:2758 templates/js/translated/stock.js:2860
msgid "Quantity"
msgstr ""
-#: build/models.py:1248
+#: build/models.py:1350
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1256
+#: build/models.py:1358
msgid "Install into"
msgstr ""
-#: build/models.py:1257
+#: build/models.py:1359
msgid "Destination stock item"
msgstr ""
@@ -997,8 +997,8 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:201 build/serializers.py:596 order/models.py:280
-#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:826
-#: stock/models.py:404 stock/models.py:1180 stock/serializers.py:305
+#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:836
+#: stock/models.py:456 stock/models.py:1232 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1012,8 +1012,8 @@ msgstr ""
#: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907
#: stock/forms.py:78 stock/serializers.py:314
-#: templates/js/translated/order.js:524 templates/js/translated/stock.js:238
-#: templates/js/translated/stock.js:392
+#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237
+#: templates/js/translated/stock.js:391
msgid "Serial Numbers"
msgstr ""
@@ -1029,7 +1029,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:275 stock/api.py:549
+#: build/serializers.py:275 stock/api.py:551
msgid "The following serial numbers already exist"
msgstr ""
@@ -1041,13 +1041,13 @@ msgstr ""
#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788
#: stock/serializers.py:1029 stock/templates/stock/item_base.html:292
#: templates/js/translated/barcode.js:384
-#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:699
-#: templates/js/translated/build.js:1309 templates/js/translated/order.js:551
-#: templates/js/translated/order.js:1961 templates/js/translated/order.js:2072
-#: templates/js/translated/order.js:2080 templates/js/translated/order.js:2161
-#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564
-#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936
-#: templates/js/translated/stock.js:1807 templates/js/translated/stock.js:2694
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700
+#: templates/js/translated/build.js:1310 templates/js/translated/order.js:611
+#: templates/js/translated/order.js:2049 templates/js/translated/order.js:2160
+#: templates/js/translated/order.js:2168 templates/js/translated/order.js:2249
+#: templates/js/translated/part.js:179 templates/js/translated/stock.js:520
+#: templates/js/translated/stock.js:685 templates/js/translated/stock.js:892
+#: templates/js/translated/stock.js:1763 templates/js/translated/stock.js:2650
msgid "Location"
msgstr ""
@@ -1058,10 +1058,10 @@ msgstr ""
#: build/serializers.py:377 build/templates/build/build_base.html:142
#: build/templates/build/detail.html:63 order/models.py:579
#: order/serializers.py:290 stock/templates/stock/item_base.html:182
-#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1954
-#: templates/js/translated/order.js:656 templates/js/translated/order.js:915
-#: templates/js/translated/order.js:1371 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2771 templates/js/translated/stock.js:2920
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2007
+#: templates/js/translated/order.js:716 templates/js/translated/order.js:975
+#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2727 templates/js/translated/stock.js:2876
msgid "Status"
msgstr ""
@@ -1073,7 +1073,7 @@ msgstr ""
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:445 templates/js/translated/build.js:150
+#: build/serializers.py:445 templates/js/translated/build.js:151
msgid "Required stock has not been fully allocated"
msgstr ""
@@ -1085,7 +1085,7 @@ msgstr ""
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:461 templates/js/translated/build.js:154
+#: build/serializers.py:461 templates/js/translated/build.js:155
msgid "Required build quantity has not been completed"
msgstr ""
@@ -1097,8 +1097,8 @@ msgstr ""
msgid "No build outputs have been created for this build order"
msgstr ""
-#: build/serializers.py:501 build/serializers.py:550 part/models.py:2831
-#: part/models.py:2990
+#: build/serializers.py:501 build/serializers.py:550 part/models.py:2846
+#: part/models.py:3005
msgid "BOM Item"
msgstr ""
@@ -1135,6 +1135,26 @@ msgstr ""
msgid "Allocation items must be provided"
msgstr ""
+#: build/serializers.py:730
+msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
+msgstr ""
+
+#: build/serializers.py:735
+msgid "Interchangeable Stock"
+msgstr ""
+
+#: build/serializers.py:736
+msgid "Stock items in multiple locations can be used interchangeably"
+msgstr ""
+
+#: build/serializers.py:741
+msgid "Substitute Stock"
+msgstr ""
+
+#: build/serializers.py:742
+msgid "Allow allocation of substitute parts"
+msgstr ""
+
#: build/tasks.py:98
msgid "Stock required for build order"
msgstr ""
@@ -1206,9 +1226,9 @@ msgstr ""
#: order/templates/order/order_base.html:156
#: order/templates/order/sales_order_base.html:163
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1994 templates/js/translated/order.js:932
-#: templates/js/translated/order.js:1204 templates/js/translated/order.js:1387
-#: templates/js/translated/order.js:2330 templates/js/translated/part.js:910
+#: templates/js/translated/build.js:2047 templates/js/translated/order.js:992
+#: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475
+#: templates/js/translated/order.js:2418 templates/js/translated/part.js:911
msgid "Target Date"
msgstr ""
@@ -1230,7 +1250,7 @@ msgstr ""
#: build/templates/build/build_base.html:163
#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
#: order/templates/order/sales_order_base.html:170
-#: templates/js/translated/build.js:1940
+#: templates/js/translated/build.js:1993
#: templates/js/translated/table_filters.js:365
msgid "Completed"
msgstr ""
@@ -1242,7 +1262,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:286
-#: templates/js/translated/order.js:1326 templates/js/translated/stock.js:2436
+#: templates/js/translated/order.js:1414 templates/js/translated/stock.js:2392
msgid "Sales Order"
msgstr ""
@@ -1277,7 +1297,7 @@ msgid "Stock can be taken from any available location."
msgstr ""
#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133
-#: templates/js/translated/order.js:657 templates/js/translated/order.js:1246
+#: templates/js/translated/order.js:717 templates/js/translated/order.js:1333
msgid "Destination"
msgstr ""
@@ -1285,13 +1305,13 @@ msgstr ""
msgid "Destination location not specified"
msgstr ""
-#: build/templates/build/detail.html:74 templates/js/translated/build.js:929
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:930
msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:310
-#: templates/js/translated/stock.js:1796 templates/js/translated/stock.js:2927
+#: templates/js/translated/stock.js:1752 templates/js/translated/stock.js:2883
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:238
msgid "Batch"
@@ -1300,7 +1320,7 @@ msgstr ""
#: build/templates/build/detail.html:127
#: order/templates/order/order_base.html:143
#: order/templates/order/sales_order_base.html:157
-#: templates/js/translated/build.js:1962
+#: templates/js/translated/build.js:2015
msgid "Created"
msgstr ""
@@ -1320,7 +1340,7 @@ msgstr ""
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:177 templates/js/translated/build.js:1484
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1485
msgid "Unallocate stock"
msgstr ""
@@ -1329,111 +1349,119 @@ msgid "Unallocate Stock"
msgstr ""
#: build/templates/build/detail.html:180
-msgid "Allocate stock to build"
+msgid "Automatically allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
+#: build/templates/build/detail.html:181
+msgid "Auto Allocate"
+msgstr ""
+
+#: build/templates/build/detail.html:183
+msgid "Manually allocate stock to build"
+msgstr ""
+
+#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8
msgid "Allocate Stock"
msgstr ""
-#: build/templates/build/detail.html:184
+#: build/templates/build/detail.html:187
msgid "Order required parts"
msgstr ""
-#: build/templates/build/detail.html:185
+#: build/templates/build/detail.html:188
#: company/templates/company/detail.html:38
#: company/templates/company/detail.html:85 order/views.py:463
-#: part/templates/part/category.html:177
+#: part/templates/part/category.html:174
msgid "Order Parts"
msgstr ""
-#: build/templates/build/detail.html:197
+#: build/templates/build/detail.html:200
msgid "Untracked stock has been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:201
+#: build/templates/build/detail.html:204
msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:208
+#: build/templates/build/detail.html:211
msgid "Allocate selected items"
msgstr ""
-#: build/templates/build/detail.html:218
+#: build/templates/build/detail.html:221
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:230
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:231
+#: build/templates/build/detail.html:234
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:232
+#: build/templates/build/detail.html:235
msgid "New Build Output"
msgstr ""
-#: build/templates/build/detail.html:246
+#: build/templates/build/detail.html:249
msgid "Output Actions"
msgstr ""
-#: build/templates/build/detail.html:250
+#: build/templates/build/detail.html:253
msgid "Complete selected build outputs"
msgstr ""
-#: build/templates/build/detail.html:251
+#: build/templates/build/detail.html:254
msgid "Complete outputs"
msgstr ""
-#: build/templates/build/detail.html:253
+#: build/templates/build/detail.html:256
msgid "Delete selected build outputs"
msgstr ""
-#: build/templates/build/detail.html:254
+#: build/templates/build/detail.html:257
msgid "Delete outputs"
msgstr ""
-#: build/templates/build/detail.html:270
+#: build/templates/build/detail.html:273
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19
+#: build/templates/build/detail.html:285 build/templates/build/sidebar.html:19
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:107
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:222
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217
#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:105
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:298
+#: build/templates/build/detail.html:301
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:302 build/templates/build/detail.html:478
-#: company/templates/company/detail.html:188
-#: company/templates/company/detail.html:215
+#: build/templates/build/detail.html:305 build/templates/build/detail.html:481
+#: company/templates/company/detail.html:190
+#: company/templates/company/detail.html:217
#: order/templates/order/purchase_order_detail.html:80
#: order/templates/order/purchase_order_detail.html:108
#: order/templates/order/sales_order_detail.html:127
#: order/templates/order/sales_order_detail.html:186
-#: part/templates/part/detail.html:150 stock/templates/stock/item.html:125
+#: part/templates/part/detail.html:145 stock/templates/stock/item.html:125
#: stock/templates/stock/item.html:223
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:519
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:520
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:329
+#: build/templates/build/index.html:18 part/templates/part/detail.html:322
msgid "New Build Order"
msgstr ""
@@ -1658,7 +1686,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:732 part/models.py:2527 report/models.py:187
+#: common/models.py:732 part/models.py:2541 report/models.py:187
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:417
msgid "Template"
@@ -1668,7 +1696,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:739 part/models.py:951 templates/js/translated/bom.js:1300
+#: common/models.py:739 part/models.py:951 templates/js/translated/bom.js:1305
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:429
msgid "Assembly"
@@ -2243,7 +2271,7 @@ msgstr ""
#: common/models.py:1325 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:937 templates/js/translated/part.js:1889
+#: templates/js/translated/part.js:938 templates/js/translated/part.js:1890
msgid "Price"
msgstr ""
@@ -2337,14 +2365,14 @@ msgstr ""
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
-#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:210
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208
#: templates/patterns/wizard/upload.html:35
msgid "Upload File"
msgstr ""
#: common/views.py:94 order/views.py:244
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:211
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:209
#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
@@ -2472,7 +2500,7 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:508
+#: company/models.py:320 company/models.py:535 stock/models.py:560
#: stock/templates/stock/item_base.html:137 templates/js/translated/bom.js:541
msgid "Base Part"
msgstr ""
@@ -2499,8 +2527,8 @@ msgstr ""
#: company/models.py:342 company/templates/company/manufacturer_part.html:96
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1124
-#: templates/js/translated/part.js:245 templates/js/translated/part.js:895
+#: templates/js/translated/company.js:818 templates/js/translated/order.js:1211
+#: templates/js/translated/part.js:245 templates/js/translated/part.js:896
msgid "MPN"
msgstr ""
@@ -2529,8 +2557,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2064 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1331
+#: stock/models.py:2116 templates/js/translated/company.js:647
+#: templates/js/translated/part.js:716 templates/js/translated/stock.js:1287
msgid "Value"
msgstr ""
@@ -2538,10 +2566,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:945 part/models.py:2495
+#: company/models.py:429 part/models.py:945 part/models.py:2509
#: part/templates/part/part_base.html:288
#: templates/InvenTree/settings/settings.html:324
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:721
+#: templates/js/translated/company.js:653 templates/js/translated/part.js:722
msgid "Units"
msgstr ""
@@ -2559,8 +2587,8 @@ msgstr ""
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237
#: part/bom.py:265 stock/templates/stock/item_base.html:376
#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:898
-#: templates/js/translated/part.js:215 templates/js/translated/part.js:863
+#: templates/js/translated/company.js:774 templates/js/translated/order.js:958
+#: templates/js/translated/part.js:215 templates/js/translated/part.js:864
#: templates/js/translated/table_filters.js:388
msgid "Supplier"
msgstr ""
@@ -2570,8 +2598,8 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1111
-#: templates/js/translated/part.js:226 templates/js/translated/part.js:881
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198
+#: templates/js/translated/part.js:226 templates/js/translated/part.js:882
msgid "SKU"
msgstr ""
@@ -2592,7 +2620,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:119
-#: part/models.py:2719 part/templates/part/upload_bom.html:59
+#: part/models.py:2734 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409
msgid "Note"
@@ -2607,8 +2635,8 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:532 stock/templates/stock/item_base.html:317
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1931
+#: stock/models.py:584 stock/templates/stock/item_base.html:317
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1887
msgid "Packaging"
msgstr ""
@@ -2676,11 +2704,11 @@ msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:83 order/models.py:574
-#: order/templates/order/sales_order_base.html:115 stock/models.py:551
-#: stock/models.py:552 stock/serializers.py:683
+#: order/templates/order/sales_order_base.html:115 stock/models.py:603
+#: stock/models.py:604 stock/serializers.py:683
#: stock/templates/stock/item_base.html:269
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1348
-#: templates/js/translated/stock.js:2735
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1436
+#: templates/js/translated/stock.js:2691
#: templates/js/translated/table_filters.js:392
msgid "Customer"
msgstr ""
@@ -2711,7 +2739,7 @@ msgstr ""
#: company/templates/company/detail.html:20
#: company/templates/company/manufacturer_part.html:118
-#: part/templates/part/detail.html:367
+#: part/templates/part/detail.html:360
msgid "New Supplier Part"
msgstr ""
@@ -2719,14 +2747,14 @@ msgstr ""
#: company/templates/company/detail.html:79
#: company/templates/company/manufacturer_part.html:127
#: company/templates/company/manufacturer_part.html:156
-#: part/templates/part/category.html:171 part/templates/part/detail.html:376
-#: part/templates/part/detail.html:405
+#: part/templates/part/category.html:168 part/templates/part/detail.html:369
+#: part/templates/part/detail.html:398
msgid "Options"
msgstr ""
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177
+#: part/templates/part/category.html:174
msgid "Order parts"
msgstr ""
@@ -2748,7 +2776,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:395
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:388
msgid "New Manufacturer Part"
msgstr ""
@@ -2762,7 +2790,7 @@ msgstr ""
#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:40
+#: part/templates/part/detail.html:80 part/templates/part/part_sidebar.html:40
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
@@ -2784,7 +2812,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:44
+#: part/templates/part/detail.html:103 part/templates/part/part_sidebar.html:44
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
@@ -2802,23 +2830,23 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/detail.html:168
-#: templates/js/translated/build.js:1281
+#: templates/js/translated/build.js:1282
msgid "Assigned Stock"
msgstr ""
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:186
msgid "Company Notes"
msgstr ""
-#: company/templates/company/detail.html:384
+#: company/templates/company/detail.html:380
#: company/templates/company/manufacturer_part.html:215
-#: part/templates/part/detail.html:449
+#: part/templates/part/detail.html:442
msgid "Delete Supplier Parts?"
msgstr ""
-#: company/templates/company/detail.html:385
+#: company/templates/company/detail.html:381
#: company/templates/company/manufacturer_part.html:216
-#: part/templates/part/detail.html:450
+#: part/templates/part/detail.html:443
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2835,7 +2863,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:34
#: company/templates/company/supplier_part.html:159
-#: part/templates/part/detail.html:88 part/templates/part/part_base.html:76
+#: part/templates/part/detail.html:83 part/templates/part/part_base.html:76
msgid "Order part"
msgstr ""
@@ -2862,14 +2890,14 @@ msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
-#: part/templates/part/detail.html:378
+#: part/templates/part/detail.html:371
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
#: company/templates/company/manufacturer_part.html:158
#: company/templates/company/manufacturer_part.html:254
-#: part/templates/part/detail.html:378 part/templates/part/detail.html:407
+#: part/templates/part/detail.html:371 part/templates/part/detail.html:400
#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31
#: users/models.py:217
msgid "Delete"
@@ -2878,12 +2906,12 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:143
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:17
-#: part/templates/part/detail.html:196 part/templates/part/part_sidebar.html:9
+#: part/templates/part/detail.html:191 part/templates/part/part_sidebar.html:9
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:147
-#: part/templates/part/detail.html:201
+#: part/templates/part/detail.html:196
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:66
msgid "New Parameter"
@@ -2894,7 +2922,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:191
-#: part/templates/part/detail.html:908
+#: part/templates/part/detail.html:894
msgid "Add Parameter"
msgstr ""
@@ -2923,9 +2951,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:516
+#: company/templates/company/supplier_part.html:24 stock/models.py:568
#: stock/templates/stock/item_base.html:381
-#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1888
+#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1844
msgid "Supplier Part"
msgstr ""
@@ -2951,7 +2979,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:166
-#: templates/js/translated/stock.js:368
+#: templates/js/translated/stock.js:367
msgid "New Stock Item"
msgstr ""
@@ -2961,7 +2989,7 @@ msgid "Supplier Part Orders"
msgstr ""
#: company/templates/company/supplier_part.html:160
-#: part/templates/part/detail.html:89
+#: part/templates/part/detail.html:84
msgid "Order Part"
msgstr ""
@@ -2972,7 +3000,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1319
+#: part/templates/part/prices.html:271 part/views.py:1254
msgid "Add Price Break"
msgstr ""
@@ -2980,11 +3008,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1381
+#: company/templates/company/supplier_part.html:224 part/views.py:1316
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1367
+#: company/templates/company/supplier_part.html:238 part/views.py:1302
msgid "Edit Price Break"
msgstr ""
@@ -3002,10 +3030,10 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:150
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/bom.js:553 templates/js/translated/part.js:495
-#: templates/js/translated/part.js:630 templates/js/translated/part.js:1147
-#: templates/js/translated/part.js:1308 templates/js/translated/stock.js:935
-#: templates/js/translated/stock.js:1711 templates/navbar.html:28
+#: templates/js/translated/bom.js:553 templates/js/translated/part.js:496
+#: templates/js/translated/part.js:631 templates/js/translated/part.js:1148
+#: templates/js/translated/part.js:1309 templates/js/translated/stock.js:891
+#: templates/js/translated/stock.js:1667 templates/navbar.html:28
msgid "Stock"
msgstr ""
@@ -3028,7 +3056,7 @@ msgstr ""
#: stock/templates/stock/location.html:150
#: stock/templates/stock/location.html:162
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2641
+#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2597
#: templates/stats.html:105 templates/stats.html:114 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -3058,20 +3086,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:591
+#: company/views.py:129 part/views.py:589
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:623
+#: company/views.py:158 part/views.py:621
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:630
+#: company/views.py:165 part/views.py:628
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:639
+#: company/views.py:174 part/views.py:637
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3190,7 +3218,7 @@ msgid "Company from which the items are being ordered"
msgstr ""
#: order/models.py:231 order/templates/order/order_base.html:118
-#: templates/js/translated/order.js:907
+#: templates/js/translated/order.js:967
msgid "Supplier Reference"
msgstr ""
@@ -3247,7 +3275,7 @@ msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
#: order/models.py:589 order/models.py:1084
-#: templates/js/translated/order.js:1395 templates/js/translated/order.js:1546
+#: templates/js/translated/order.js:1483 templates/js/translated/order.js:1634
msgid "Shipment Date"
msgstr ""
@@ -3292,7 +3320,7 @@ msgid "Supplier part must match supplier"
msgstr ""
#: order/models.py:891 order/models.py:982 order/models.py:1078
-#: templates/js/translated/order.js:1937 templates/js/translated/stock.js:2403
+#: templates/js/translated/order.js:2025 templates/js/translated/stock.js:2359
msgid "Order"
msgstr ""
@@ -3300,8 +3328,8 @@ msgstr ""
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:331
-#: templates/js/translated/order.js:876 templates/js/translated/part.js:838
-#: templates/js/translated/stock.js:1865 templates/js/translated/stock.js:2716
+#: templates/js/translated/order.js:936 templates/js/translated/part.js:839
+#: templates/js/translated/stock.js:1821 templates/js/translated/stock.js:2672
msgid "Purchase Order"
msgstr ""
@@ -3310,8 +3338,8 @@ msgid "Supplier part"
msgstr ""
#: order/models.py:920 order/templates/order/order_base.html:163
-#: templates/js/translated/order.js:654 templates/js/translated/order.js:1226
-#: templates/js/translated/part.js:932 templates/js/translated/part.js:959
+#: templates/js/translated/order.js:714 templates/js/translated/order.js:1313
+#: templates/js/translated/part.js:933 templates/js/translated/part.js:960
#: templates/js/translated/table_filters.js:312
msgid "Received"
msgstr ""
@@ -3320,9 +3348,9 @@ msgstr ""
msgid "Number of items received"
msgstr ""
-#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:645
+#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:697
#: stock/serializers.py:170 stock/templates/stock/item_base.html:338
-#: templates/js/translated/stock.js:1919
+#: templates/js/translated/stock.js:1875
msgid "Purchase Price"
msgstr ""
@@ -3456,11 +3484,11 @@ msgstr ""
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:273 templates/js/translated/order.js:514
+#: order/serializers.py:273 templates/js/translated/order.js:574
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:281 templates/js/translated/order.js:525
+#: order/serializers.py:281 templates/js/translated/order.js:585
msgid "Enter serial numbers for incoming stock items"
msgstr ""
@@ -3578,7 +3606,7 @@ msgstr ""
#: order/templates/order/order_base.html:94
#: order/templates/order/sales_order_base.html:89
-#: templates/js/translated/stock.js:2459
+#: templates/js/translated/stock.js:2415
msgid "Order Status"
msgstr ""
@@ -3650,10 +3678,10 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/bom.js:76 templates/js/translated/build.js:380
-#: templates/js/translated/build.js:528 templates/js/translated/build.js:1547
-#: templates/js/translated/order.js:602 templates/js/translated/order.js:1605
-#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769
+#: templates/js/translated/bom.js:76 templates/js/translated/build.js:381
+#: templates/js/translated/build.js:529 templates/js/translated/build.js:1558
+#: templates/js/translated/order.js:662 templates/js/translated/order.js:1693
+#: templates/js/translated/stock.js:557 templates/js/translated/stock.js:725
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr ""
@@ -3717,8 +3745,8 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:940 templates/js/translated/order.js:1403
-#: templates/js/translated/order.js:1533
+#: templates/js/translated/order.js:1000 templates/js/translated/order.js:1491
+#: templates/js/translated/order.js:1621
msgid "Items"
msgstr ""
@@ -3752,9 +3780,9 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:27
-#: order/templates/order/purchase_order_detail.html:182
+#: order/templates/order/purchase_order_detail.html:166
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:245
+#: order/templates/order/sales_order_detail.html:233
msgid "Add Line Item"
msgstr ""
@@ -3794,7 +3822,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:122
-#: templates/js/translated/order.js:1361
+#: templates/js/translated/order.js:1449
msgid "Customer Reference"
msgstr ""
@@ -3827,7 +3855,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:48
-#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1465
+#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1466
msgid "Actions"
msgstr ""
@@ -3902,31 +3930,31 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:499
+#: part/api.py:502
msgid "Valid"
msgstr ""
-#: part/api.py:500
+#: part/api.py:503
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:505
+#: part/api.py:508
msgid "This option must be selected"
msgstr ""
-#: part/api.py:847
+#: part/api.py:866
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:851
+#: part/api.py:870
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:866
+#: part/api.py:885
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:897 part/api.py:901 part/api.py:916 part/api.py:920
+#: part/api.py:916 part/api.py:920 part/api.py:935 part/api.py:939
msgid "This field is required"
msgstr ""
@@ -3944,7 +3972,7 @@ msgid "Available Stock"
msgstr ""
#: part/bom.py:128 part/templates/part/part_base.html:203
-#: templates/js/translated/part.js:1323
+#: templates/js/translated/part.js:1324
msgid "On Order"
msgstr ""
@@ -3976,7 +4004,7 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:97 part/models.py:2571 part/templates/part/category.html:15
+#: part/models.py:97 part/models.py:2585 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -3993,7 +4021,7 @@ msgstr ""
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:37
-#: templates/js/translated/part.js:1685 templates/navbar.html:21
+#: templates/js/translated/part.js:1686 templates/navbar.html:21
#: templates/stats.html:92 templates/stats.html:101 users/models.py:41
msgid "Parts"
msgstr ""
@@ -4023,7 +4051,7 @@ msgstr ""
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:803 part/models.py:2624
+#: part/models.py:803 part/models.py:2638
msgid "Part name"
msgstr ""
@@ -4056,11 +4084,11 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:841 part/models.py:2321 part/models.py:2570
+#: part/models.py:841 part/models.py:2335 part/models.py:2584
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:223
-#: templates/js/translated/part.js:1290
+#: templates/js/translated/part.js:1291
msgid "Category"
msgstr ""
@@ -4069,8 +4097,8 @@ msgid "Part category"
msgstr ""
#: part/models.py:847 part/templates/part/part_base.html:274
-#: templates/js/translated/part.js:618 templates/js/translated/part.js:1243
-#: templates/js/translated/stock.js:1683
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:1244
+#: templates/js/translated/stock.js:1639
msgid "IPN"
msgstr ""
@@ -4083,7 +4111,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:855 part/templates/part/part_base.html:281
-#: report/models.py:200 templates/js/translated/part.js:622
+#: report/models.py:200 templates/js/translated/part.js:623
msgid "Revision"
msgstr ""
@@ -4175,301 +4203,309 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2371
+#: part/models.py:2385
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2388
+#: part/models.py:2402
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2408 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:1311
+#: part/models.py:2422 templates/js/translated/part.js:1737
+#: templates/js/translated/stock.js:1267
msgid "Test Name"
msgstr ""
-#: part/models.py:2409
+#: part/models.py:2423
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2414
+#: part/models.py:2428
msgid "Test Description"
msgstr ""
-#: part/models.py:2415
+#: part/models.py:2429
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2420 templates/js/translated/part.js:1745
+#: part/models.py:2434 templates/js/translated/part.js:1746
#: templates/js/translated/table_filters.js:276
msgid "Required"
msgstr ""
-#: part/models.py:2421
+#: part/models.py:2435
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2426 templates/js/translated/part.js:1753
+#: part/models.py:2440 templates/js/translated/part.js:1754
msgid "Requires Value"
msgstr ""
-#: part/models.py:2427
+#: part/models.py:2441
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2432 templates/js/translated/part.js:1760
+#: part/models.py:2446 templates/js/translated/part.js:1761
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2433
+#: part/models.py:2447
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2444
+#: part/models.py:2458
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2480
+#: part/models.py:2494
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2488
+#: part/models.py:2502
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2495
+#: part/models.py:2509
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2525
+#: part/models.py:2539
msgid "Parent Part"
msgstr ""
-#: part/models.py:2527 part/models.py:2576 part/models.py:2577
+#: part/models.py:2541 part/models.py:2590 part/models.py:2591
#: templates/InvenTree/settings/settings.html:218
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2529
+#: part/models.py:2543
msgid "Data"
msgstr ""
-#: part/models.py:2529
+#: part/models.py:2543
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2581 templates/InvenTree/settings/settings.html:227
+#: part/models.py:2595 templates/InvenTree/settings/settings.html:227
msgid "Default Value"
msgstr ""
-#: part/models.py:2582
+#: part/models.py:2596
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2616
+#: part/models.py:2630
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2619 templates/js/translated/model_renderers.js:182
+#: part/models.py:2633 templates/js/translated/model_renderers.js:182
msgid "Part ID"
msgstr ""
-#: part/models.py:2620
+#: part/models.py:2634
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2623
+#: part/models.py:2637
msgid "Part Name"
msgstr ""
-#: part/models.py:2627
+#: part/models.py:2641
msgid "Part IPN"
msgstr ""
-#: part/models.py:2628
+#: part/models.py:2642
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2645
msgid "Level"
msgstr ""
-#: part/models.py:2632
+#: part/models.py:2646
msgid "BOM level"
msgstr ""
-#: part/models.py:2692
+#: part/models.py:2707
msgid "Select parent part"
msgstr ""
-#: part/models.py:2700
+#: part/models.py:2715
msgid "Sub part"
msgstr ""
-#: part/models.py:2701
+#: part/models.py:2716
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2707
+#: part/models.py:2722
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2709 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:791 templates/js/translated/bom.js:865
+#: part/models.py:2724 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2709
+#: part/models.py:2724
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2712 part/templates/part/upload_bom.html:55
+#: part/models.py:2727 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2713
+#: part/models.py:2728
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2716
+#: part/models.py:2731
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2719
+#: part/models.py:2734
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2721
+#: part/models.py:2736
msgid "Checksum"
msgstr ""
-#: part/models.py:2721
+#: part/models.py:2736
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2725 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:882
+#: part/models.py:2740 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:880
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2726
+#: part/models.py:2741
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2731 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:874
+#: part/models.py:2746 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:872
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2732
+#: part/models.py:2747
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2817 stock/models.py:394
+#: part/models.py:2832 stock/models.py:446
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2826 part/models.py:2828
+#: part/models.py:2841 part/models.py:2843
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2957
+#: part/models.py:2972
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2979
+#: part/models.py:2994
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2991
+#: part/models.py:3006
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2999
+#: part/models.py:3014
msgid "Substitute part"
msgstr ""
-#: part/models.py:3010
+#: part/models.py:3025
msgid "Part 1"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3029
msgid "Part 2"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3029
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3046
+#: part/models.py:3061
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
-#: part/serializers.py:667
+#: part/serializers.py:670
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:678
+#: part/serializers.py:681
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:679
+#: part/serializers.py:682
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:684
+#: part/serializers.py:687
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:685
+#: part/serializers.py:688
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:690
+#: part/serializers.py:693
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:691
+#: part/serializers.py:694
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:699
+msgid "Copy Substitute Parts"
+msgstr ""
+
+#: part/serializers.py:700
+msgid "Copy substitute parts when duplicate BOM items"
+msgstr ""
+
+#: part/serializers.py:744
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:735
+#: part/serializers.py:745
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:762
+#: part/serializers.py:772
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:805
+#: part/serializers.py:815
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:808
+#: part/serializers.py:818
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:811
+#: part/serializers.py:821
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:820
+#: part/serializers.py:830
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:828
+#: part/serializers.py:838
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:847
+#: part/serializers.py:857
msgid "At least one BOM item is required"
msgstr ""
@@ -4496,7 +4532,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:279
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:274
msgid "BOM actions"
msgstr ""
@@ -4548,7 +4584,7 @@ msgstr ""
msgid "Top level part category"
msgstr ""
-#: part/templates/part/category.html:114 part/templates/part/category.html:205
+#: part/templates/part/category.html:114 part/templates/part/category.html:202
#: part/templates/part/category_sidebar.html:7
msgid "Subcategories"
msgstr ""
@@ -4557,55 +4593,51 @@ msgstr ""
msgid "Parts (Including subcategories)"
msgstr ""
-#: part/templates/part/category.html:156
-msgid "Export Part Data"
-msgstr ""
-
-#: part/templates/part/category.html:157 part/templates/part/category.html:181
-msgid "Export"
-msgstr ""
-
-#: part/templates/part/category.html:160
+#: part/templates/part/category.html:157
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:161 templates/js/translated/bom.js:365
+#: part/templates/part/category.html:158 templates/js/translated/bom.js:365
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:175
+#: part/templates/part/category.html:172
msgid "Set category"
msgstr ""
-#: part/templates/part/category.html:175
+#: part/templates/part/category.html:172
msgid "Set Category"
msgstr ""
-#: part/templates/part/category.html:179
+#: part/templates/part/category.html:176
msgid "Print Labels"
msgstr ""
-#: part/templates/part/category.html:181
+#: part/templates/part/category.html:178
+msgid "Export"
+msgstr ""
+
+#: part/templates/part/category.html:178
msgid "Export Data"
msgstr ""
-#: part/templates/part/category.html:195
+#: part/templates/part/category.html:192
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:288
+#: part/templates/part/category.html:285
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:315
+#: part/templates/part/category.html:305
msgid "Create Part"
msgstr ""
-#: part/templates/part/category.html:318
+#: part/templates/part/category.html:308
msgid "Create another part after this one"
msgstr ""
-#: part/templates/part/category.html:319
+#: part/templates/part/category.html:309
msgid "Part created successfully"
msgstr ""
@@ -4676,155 +4708,150 @@ msgstr ""
msgid "Part Stock"
msgstr ""
-#: part/templates/part/detail.html:33
-#, python-format
-msgid "Showing stock for all variants of %(full_name)s"
-msgstr ""
-
-#: part/templates/part/detail.html:43
+#: part/templates/part/detail.html:38
msgid "Part Stock Allocations"
msgstr ""
-#: part/templates/part/detail.html:60
+#: part/templates/part/detail.html:55
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:65
+#: part/templates/part/detail.html:60
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:122
+#: part/templates/part/detail.html:117
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:168
+#: part/templates/part/detail.html:163
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:172
+#: part/templates/part/detail.html:167
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:173
+#: part/templates/part/detail.html:168
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:200
+#: part/templates/part/detail.html:195
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:237 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:52
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:241 part/templates/part/detail.html:242
+#: part/templates/part/detail.html:236 part/templates/part/detail.html:237
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:262 part/templates/part/part_sidebar.html:18
+#: part/templates/part/detail.html:257 part/templates/part/part_sidebar.html:18
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:267
+#: part/templates/part/detail.html:262
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:271 templates/js/translated/bom.js:283
+#: part/templates/part/detail.html:266 templates/js/translated/bom.js:283
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:268
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:283
+#: part/templates/part/detail.html:278
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:285 templates/js/translated/part.js:272
+#: part/templates/part/detail.html:279 templates/js/translated/part.js:272
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:287
+#: part/templates/part/detail.html:280
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:285
msgid "New BOM Item"
msgstr ""
-#: part/templates/part/detail.html:293
+#: part/templates/part/detail.html:286
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:306
+#: part/templates/part/detail.html:299
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:323
+#: part/templates/part/detail.html:316
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:348
+#: part/templates/part/detail.html:341
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:363
+#: part/templates/part/detail.html:356
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:391
+#: part/templates/part/detail.html:384
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:407
+#: part/templates/part/detail.html:400
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:589
+#: part/templates/part/detail.html:582
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:590
+#: part/templates/part/detail.html:583
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:639
+#: part/templates/part/detail.html:632
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:696
+#: part/templates/part/detail.html:689
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:704
+#: part/templates/part/detail.html:697
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:801
+#: part/templates/part/detail.html:794
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:858
+#: part/templates/part/detail.html:844
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:971
+#: part/templates/part/detail.html:957
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:983
+#: part/templates/part/detail.html:969
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:995
+#: part/templates/part/detail.html:981
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1084
+#: part/templates/part/detail.html:1070
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4969,7 +4996,7 @@ msgstr ""
#: templates/js/translated/company.js:508
#: templates/js/translated/company.js:765
#: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:533 templates/js/translated/part.js:610
+#: templates/js/translated/part.js:534 templates/js/translated/part.js:611
msgid "Inactive"
msgstr ""
@@ -4983,7 +5010,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2356
+#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2444
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5000,12 +5027,12 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:903
+#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:901
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1154
-#: templates/js/translated/part.js:1327
+#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1155
+#: templates/js/translated/part.js:1328
msgid "Building"
msgstr ""
@@ -5057,7 +5084,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:857
+#: templates/js/translated/bom.js:855
msgid "No supplier pricing available"
msgstr ""
@@ -5177,7 +5204,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:851
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849
msgid "Supplier Cost"
msgstr ""
@@ -5199,7 +5226,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1390
+#: part/templates/part/prices.html:215 part/views.py:1325
msgid "Add Internal Price Break"
msgstr ""
@@ -5219,9 +5246,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813
-#: templates/js/translated/part.js:497 templates/js/translated/part.js:1144
-#: templates/js/translated/part.js:1331
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811
+#: templates/js/translated/part.js:498 templates/js/translated/part.js:1145
+#: templates/js/translated/part.js:1332
msgid "No Stock"
msgstr ""
@@ -5275,100 +5302,100 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:172
+#: part/templatetags/inventree_extras.py:174
msgid "Unknown database"
msgstr ""
-#: part/views.py:90
+#: part/views.py:88
msgid "Set Part Category"
msgstr ""
-#: part/views.py:140
+#: part/views.py:138
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:212
+#: part/views.py:210
msgid "Match References"
msgstr ""
-#: part/views.py:509
+#: part/views.py:507
msgid "None"
msgstr ""
-#: part/views.py:568
+#: part/views.py:566
msgid "Part QR Code"
msgstr ""
-#: part/views.py:670
+#: part/views.py:668
msgid "Select Part Image"
msgstr ""
-#: part/views.py:696
+#: part/views.py:694
msgid "Updated part image"
msgstr ""
-#: part/views.py:699
+#: part/views.py:697
msgid "Part image not found"
msgstr ""
-#: part/views.py:850
+#: part/views.py:785
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:857
+#: part/views.py:792
msgid "Part was deleted"
msgstr ""
-#: part/views.py:866
+#: part/views.py:801
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1015
+#: part/views.py:950
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1025
+#: part/views.py:960
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1032
+#: part/views.py:967
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1091 templates/js/translated/part.js:315
+#: part/views.py:1026 templates/js/translated/part.js:315
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1129
+#: part/views.py:1064
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1135
+#: part/views.py:1070
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1144
+#: part/views.py:1079
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1245
+#: part/views.py:1180
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1301
+#: part/views.py:1236
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1323
+#: part/views.py:1258
msgid "Added new price break"
msgstr ""
-#: part/views.py:1399
+#: part/views.py:1334
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1407
+#: part/views.py:1342
msgid "Delete Internal Price Break"
msgstr ""
@@ -5574,12 +5601,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:556 stock/templates/stock/item_base.html:151
-#: templates/js/translated/build.js:373 templates/js/translated/build.js:521
-#: templates/js/translated/build.js:919 templates/js/translated/build.js:1295
+#: stock/models.py:608 stock/templates/stock/item_base.html:151
+#: templates/js/translated/build.js:374 templates/js/translated/build.js:522
+#: templates/js/translated/build.js:920 templates/js/translated/build.js:1296
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:99 templates/js/translated/order.js:2062
-#: templates/js/translated/order.js:2151 templates/js/translated/stock.js:423
+#: templates/js/translated/order.js:99 templates/js/translated/order.js:2150
+#: templates/js/translated/order.js:2239 templates/js/translated/stock.js:422
msgid "Serial Number"
msgstr ""
@@ -5588,19 +5615,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:2052
+#: stock/models.py:2104
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:2058
+#: stock/models.py:2110
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:50
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:924 templates/js/translated/stock.js:2657
+#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2613
msgid "Date"
msgstr ""
@@ -5618,26 +5645,26 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756
-#: templates/js/translated/stock.js:2910
+#: templates/js/translated/stock.js:542 templates/js/translated/stock.js:712
+#: templates/js/translated/stock.js:2866
msgid "Serial"
msgstr ""
-#: stock/api.py:501
+#: stock/api.py:503
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:508
+#: stock/api.py:510
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:533
+#: stock/api.py:535
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/forms.py:74 stock/forms.py:198 stock/models.py:613
+#: stock/forms.py:74 stock/forms.py:198 stock/models.py:665
#: stock/templates/stock/item_base.html:188
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1791
msgid "Expiry Date"
msgstr ""
@@ -5677,228 +5704,228 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:62 stock/models.py:650
+#: stock/models.py:62 stock/models.py:702
#: stock/templates/stock/item_base.html:402
msgid "Owner"
msgstr ""
-#: stock/models.py:63 stock/models.py:651
+#: stock/models.py:63 stock/models.py:703
msgid "Select Owner"
msgstr ""
-#: stock/models.py:375
+#: stock/models.py:427
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:463
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:421 stock/models.py:430
+#: stock/models.py:473 stock/models.py:482
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:422
+#: stock/models.py:474
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:444
+#: stock/models.py:496
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:450
+#: stock/models.py:502
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:457
+#: stock/models.py:509
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:500
+#: stock/models.py:552
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:509
+#: stock/models.py:561
msgid "Base part"
msgstr ""
-#: stock/models.py:517
+#: stock/models.py:569
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:523 stock/templates/stock/location.html:16
+#: stock/models.py:575 stock/templates/stock/location.html:16
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:526
+#: stock/models.py:578
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:585
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:539 stock/templates/stock/item_base.html:277
+#: stock/models.py:591 stock/templates/stock/item_base.html:277
msgid "Installed In"
msgstr ""
-#: stock/models.py:542
+#: stock/models.py:594
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:558
+#: stock/models.py:610
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:572
+#: stock/models.py:624
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:576
+#: stock/models.py:628
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:585
+#: stock/models.py:637
msgid "Source Build"
msgstr ""
-#: stock/models.py:587
+#: stock/models.py:639
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:598
+#: stock/models.py:650
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:601
+#: stock/models.py:653
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:607
+#: stock/models.py:659
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:614
+#: stock/models.py:666
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:627
+#: stock/models.py:679
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:627
+#: stock/models.py:679
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:637 stock/templates/stock/item.html:121
+#: stock/models.py:689 stock/templates/stock/item.html:121
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:646
+#: stock/models.py:698
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1171
+#: stock/models.py:1223
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1177
+#: stock/models.py:1229
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1183
+#: stock/models.py:1235
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1186
+#: stock/models.py:1238
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1189
+#: stock/models.py:1241
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1196
+#: stock/models.py:1248
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1267
+#: stock/models.py:1319
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1270
+#: stock/models.py:1322
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1273
+#: stock/models.py:1325
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1276
+#: stock/models.py:1328
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1279
+#: stock/models.py:1331
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1282
+#: stock/models.py:1334
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1289 stock/serializers.py:832
+#: stock/models.py:1341 stock/serializers.py:832
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1293
+#: stock/models.py:1345
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1297
+#: stock/models.py:1349
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1301
+#: stock/models.py:1353
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1473
+#: stock/models.py:1525
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1972
+#: stock/models.py:2024
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2029
+#: stock/models.py:2081
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2035
+#: stock/models.py:2087
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2053
+#: stock/models.py:2105
msgid "Test name"
msgstr ""
-#: stock/models.py:2059
+#: stock/models.py:2111
msgid "Test result"
msgstr ""
-#: stock/models.py:2065
+#: stock/models.py:2117
msgid "Test output value"
msgstr ""
-#: stock/models.py:2072
+#: stock/models.py:2124
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2078
+#: stock/models.py:2130
msgid "Test notes"
msgstr ""
@@ -5935,7 +5962,7 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:363 stock/views.py:1127
+#: stock/serializers.py:363 stock/views.py:1009
msgid "Serial numbers already exist"
msgstr ""
@@ -6052,11 +6079,11 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:147 templates/js/translated/stock.js:3019
+#: stock/templates/stock/item.html:147 templates/js/translated/stock.js:2975
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1479
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1435
msgid "Add Test Result"
msgstr ""
@@ -6070,7 +6097,7 @@ msgstr ""
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:46 templates/stock_table.html:24
+#: stock/templates/stock/item_base.html:46 templates/stock_table.html:21
msgid "Scan to Location"
msgstr ""
@@ -6083,15 +6110,15 @@ msgid "Stock adjustment actions"
msgstr ""
#: stock/templates/stock/item_base.html:69
-#: stock/templates/stock/location.html:52 templates/stock_table.html:50
+#: stock/templates/stock/location.html:52 templates/stock_table.html:47
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48
+#: stock/templates/stock/item_base.html:72 templates/stock_table.html:45
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49
+#: stock/templates/stock/item_base.html:75 templates/stock_table.html:46
msgid "Remove stock"
msgstr ""
@@ -6100,11 +6127,11 @@ msgid "Serialize stock"
msgstr ""
#: stock/templates/stock/item_base.html:82
-#: stock/templates/stock/location.html:58 templates/stock_table.html:51
+#: stock/templates/stock/location.html:58 templates/stock_table.html:48
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85 templates/stock_table.html:54
+#: stock/templates/stock/item_base.html:85 templates/stock_table.html:51
msgid "Assign to customer"
msgstr ""
@@ -6181,7 +6208,7 @@ msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:201
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1807
msgid "Last Updated"
msgstr ""
@@ -6218,7 +6245,7 @@ msgid "This stock item is serialized - it has a unique serial number and the qua
msgstr ""
#: stock/templates/stock/item_base.html:296
-#: templates/js/translated/build.js:1317
+#: templates/js/translated/build.js:1318
msgid "No location set"
msgstr ""
@@ -6320,11 +6347,11 @@ msgstr ""
msgid "Stock Locations"
msgstr ""
-#: stock/templates/stock/location.html:185 templates/stock_table.html:30
+#: stock/templates/stock/location.html:185 templates/stock_table.html:27
msgid "Printing Actions"
msgstr ""
-#: stock/templates/stock/location.html:189 templates/stock_table.html:34
+#: stock/templates/stock/location.html:189 templates/stock_table.html:31
msgid "Print labels"
msgstr ""
@@ -6348,7 +6375,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:749
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:631
msgid "Convert Stock Item"
msgstr ""
@@ -6369,95 +6396,95 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181 templates/js/translated/stock.js:139
+#: stock/views.py:152 templates/js/translated/stock.js:138
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:728 stock/views.py:854 stock/views.py:1136
+#: stock/views.py:259 stock/views.py:610 stock/views.py:736 stock/views.py:1018
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:274
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:293
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:302
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:342
+#: stock/views.py:313
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:353
+#: stock/views.py:324
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:370
+#: stock/views.py:341
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:371
+#: stock/views.py:342
msgid "Check the confirmation box"
msgstr ""
-#: stock/views.py:475
+#: stock/views.py:357
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:500
+#: stock/views.py:382
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:597 templates/js/translated/stock.js:1074
+#: stock/views.py:479 templates/js/translated/stock.js:1030
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:608
+#: stock/views.py:490
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:630 templates/js/translated/stock.js:332
+#: stock/views.py:512 templates/js/translated/stock.js:331
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:780
+#: stock/views.py:662
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:881
+#: stock/views.py:763
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1023 templates/js/translated/stock.js:312
+#: stock/views.py:905 templates/js/translated/stock.js:311
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1105
+#: stock/views.py:987
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1205
+#: stock/views.py:1087
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1218
+#: stock/views.py:1100
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1229
+#: stock/views.py:1111
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1236
+#: stock/views.py:1118
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1245
+#: stock/views.py:1127
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -7381,14 +7408,14 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1335
+#: templates/js/translated/bom.js:1340
msgid "Required Quantity"
msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:804 templates/js/translated/build.js:1411
-#: templates/js/translated/build.js:2057
+#: templates/js/translated/bom.js:802 templates/js/translated/build.js:1412
+#: templates/js/translated/build.js:2110
#: templates/js/translated/table_filters.js:178
msgid "Available"
msgstr ""
@@ -7580,7 +7607,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:982
msgid "Remove stock item"
msgstr ""
@@ -7635,12 +7662,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286
-#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518
+#: templates/js/translated/order.js:429 templates/js/translated/tables.js:53
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519
+#: templates/js/translated/order.js:430
msgid "Select file format"
msgstr ""
@@ -7716,275 +7743,307 @@ msgstr ""
msgid "Edit BOM Item Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:741
+#: templates/js/translated/bom.js:739
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:745 templates/js/translated/build.js:1393
+#: templates/js/translated/bom.js:743 templates/js/translated/build.js:1394
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:750
+#: templates/js/translated/bom.js:748
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:822
+#: templates/js/translated/bom.js:820
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:837
+#: templates/js/translated/bom.js:835
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:844
+#: templates/js/translated/bom.js:842
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:893 templates/js/translated/bom.js:982
+#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:953
+#: templates/js/translated/bom.js:951
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:955
+#: templates/js/translated/bom.js:953
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:957
+#: templates/js/translated/bom.js:955
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138
+#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:961 templates/js/translated/bom.js:1121
+#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1060 templates/js/translated/build.js:1137
+#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1138
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1116
+#: templates/js/translated/bom.js:1121
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:1318 templates/js/translated/build.js:1377
+#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1378
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1340
+#: templates/js/translated/bom.js:1345
msgid "Inherited from parent BOM"
msgstr ""
-#: templates/js/translated/build.js:85
+#: templates/js/translated/build.js:86
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:119
+#: templates/js/translated/build.js:120
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:140
+#: templates/js/translated/build.js:141
msgid "Build order is ready to be completed"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:146
msgid "Build Order is incomplete"
msgstr ""
-#: templates/js/translated/build.js:173
+#: templates/js/translated/build.js:174
msgid "Complete Build Order"
msgstr ""
-#: templates/js/translated/build.js:214 templates/js/translated/stock.js:92
-#: templates/js/translated/stock.js:181
+#: templates/js/translated/build.js:215 templates/js/translated/stock.js:91
+#: templates/js/translated/stock.js:180
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:216 templates/js/translated/stock.js:94
-#: templates/js/translated/stock.js:183
+#: templates/js/translated/build.js:217 templates/js/translated/stock.js:93
+#: templates/js/translated/stock.js:182
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/build.js:225
+#: templates/js/translated/build.js:226
msgid "The Bill of Materials contains trackable parts"
msgstr ""
-#: templates/js/translated/build.js:226
+#: templates/js/translated/build.js:227
msgid "Build outputs must be generated individually"
msgstr ""
-#: templates/js/translated/build.js:234
+#: templates/js/translated/build.js:235
msgid "Trackable parts can have serial numbers specified"
msgstr ""
-#: templates/js/translated/build.js:235
+#: templates/js/translated/build.js:236
msgid "Enter serial numbers to generate multiple single build outputs"
msgstr ""
-#: templates/js/translated/build.js:242
+#: templates/js/translated/build.js:243
msgid "Create Build Output"
msgstr ""
-#: templates/js/translated/build.js:273
+#: templates/js/translated/build.js:274
msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:284
+#: templates/js/translated/build.js:285
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:293
+#: templates/js/translated/build.js:294
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:301
+#: templates/js/translated/build.js:302
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:324
+#: templates/js/translated/build.js:325
msgid "Are you sure you wish to unallocate stock items from this build?"
msgstr ""
-#: templates/js/translated/build.js:342
+#: templates/js/translated/build.js:343
msgid "Unallocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:360 templates/js/translated/build.js:508
+#: templates/js/translated/build.js:361 templates/js/translated/build.js:509
msgid "Select Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:361 templates/js/translated/build.js:509
+#: templates/js/translated/build.js:362 templates/js/translated/build.js:510
msgid "At least one build output must be selected"
msgstr ""
-#: templates/js/translated/build.js:415 templates/js/translated/build.js:563
+#: templates/js/translated/build.js:416 templates/js/translated/build.js:564
msgid "Output"
msgstr ""
-#: templates/js/translated/build.js:431
+#: templates/js/translated/build.js:432
msgid "Complete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:576
+#: templates/js/translated/build.js:577
msgid "Delete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:665
+#: templates/js/translated/build.js:666
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:703 templates/js/translated/order.js:1965
+#: templates/js/translated/build.js:704 templates/js/translated/order.js:2053
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:885
+#: templates/js/translated/build.js:886
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1334 templates/js/translated/build.js:2068
-#: templates/js/translated/order.js:2099
+#: templates/js/translated/build.js:1335 templates/js/translated/build.js:2121
+#: templates/js/translated/order.js:2187
msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1336 templates/js/translated/build.js:2069
-#: templates/js/translated/order.js:2100
+#: templates/js/translated/build.js:1337 templates/js/translated/build.js:2122
+#: templates/js/translated/order.js:2188
msgid "Delete stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1354
+#: templates/js/translated/build.js:1355
msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:1364
+#: templates/js/translated/build.js:1365
msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:1389
+#: templates/js/translated/build.js:1390
msgid "Substitute parts available"
msgstr ""
-#: templates/js/translated/build.js:1406
+#: templates/js/translated/build.js:1407
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1416 templates/js/translated/build.js:1656
-#: templates/js/translated/build.js:2064 templates/js/translated/order.js:2366
+#: templates/js/translated/build.js:1417 templates/js/translated/build.js:1667
+#: templates/js/translated/build.js:2117 templates/js/translated/order.js:2454
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1472 templates/js/translated/order.js:2446
+#: templates/js/translated/build.js:1473 templates/js/translated/order.js:2534
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:1476 templates/stock_table.html:53
+#: templates/js/translated/build.js:1477 templates/stock_table.html:50
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1479 templates/js/translated/order.js:2439
+#: templates/js/translated/build.js:1480 templates/js/translated/order.js:2527
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:1558 templates/js/translated/order.js:1616
-msgid "Specify stock allocation quantity"
-msgstr ""
-
-#: templates/js/translated/build.js:1629 templates/js/translated/label.js:134
-#: templates/js/translated/order.js:1667 templates/js/translated/report.js:225
+#: templates/js/translated/build.js:1519 templates/js/translated/label.js:134
+#: templates/js/translated/order.js:1755 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1630 templates/js/translated/order.js:1668
+#: templates/js/translated/build.js:1520 templates/js/translated/order.js:1756
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:1644 templates/js/translated/order.js:1682
+#: templates/js/translated/build.js:1569 templates/js/translated/order.js:1704
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:1640
+msgid "All Parts Allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:1641
+msgid "All selected parts have been fully allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:1655 templates/js/translated/order.js:1770
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1717
+#: templates/js/translated/build.js:1684 templates/js/translated/order.js:1805
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1674
+#: templates/js/translated/build.js:1685
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1730
+#: templates/js/translated/build.js:1696 templates/js/translated/order.js:1818
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1757 templates/js/translated/order.js:1807
+#: templates/js/translated/build.js:1768 templates/js/translated/order.js:1895
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1875
+#: templates/js/translated/build.js:1865
+msgid "Automatic Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1866
+msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
+msgstr ""
+
+#: templates/js/translated/build.js:1868
+msgid "If a location is specifed, stock will only be allocated from that location"
+msgstr ""
+
+#: templates/js/translated/build.js:1869
+msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
+msgstr ""
+
+#: templates/js/translated/build.js:1870
+msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
+msgstr ""
+
+#: templates/js/translated/build.js:1890
+msgid "Allocate Stock Items"
+msgstr ""
+
+#: templates/js/translated/build.js:1928
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1892 templates/js/translated/part.js:1235
-#: templates/js/translated/part.js:1646 templates/js/translated/stock.js:1643
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/build.js:1945 templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1647 templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:2567
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1912
+#: templates/js/translated/build.js:1965
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1976 templates/js/translated/stock.js:2823
+#: templates/js/translated/build.js:2029 templates/js/translated/stock.js:2779
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1988
+#: templates/js/translated/build.js:2041
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:2045
+#: templates/js/translated/build.js:2098
msgid "No parts allocated for"
msgstr ""
@@ -8049,34 +8108,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:517
-#: templates/js/translated/part.js:602
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:518
+#: templates/js/translated/part.js:603
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:521
-#: templates/js/translated/part.js:606
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:522
+#: templates/js/translated/part.js:607
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:696
+#: templates/js/translated/company.js:631 templates/js/translated/part.js:697
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:738
+#: templates/js/translated/company.js:668 templates/js/translated/part.js:739
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:739
+#: templates/js/translated/company.js:669 templates/js/translated/part.js:740
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:756
+#: templates/js/translated/company.js:688 templates/js/translated/part.js:757
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:768
+#: templates/js/translated/company.js:699 templates/js/translated/part.js:769
msgid "Delete Parameter"
msgstr ""
@@ -8085,12 +8144,12 @@ msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:429
+#: templates/js/translated/filters.js:441
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:430
+#: templates/js/translated/filters.js:442
msgid "false"
msgstr ""
@@ -8098,19 +8157,23 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:286
+#: templates/js/translated/filters.js:288
+msgid "Download data"
+msgstr ""
+
+#: templates/js/translated/filters.js:291
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:290
+#: templates/js/translated/filters.js:295
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:293
+#: templates/js/translated/filters.js:298
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:338
+#: templates/js/translated/filters.js:350
msgid "Create filter"
msgstr ""
@@ -8181,7 +8244,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1050
+#: templates/js/translated/stock.js:1006
msgid "Select Stock Items"
msgstr ""
@@ -8354,206 +8417,214 @@ msgstr ""
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:366
+#: templates/js/translated/order.js:426
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:460
+#: templates/js/translated/order.js:520
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:461
+#: templates/js/translated/order.js:521
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:481 templates/js/translated/order.js:580
+#: templates/js/translated/order.js:541 templates/js/translated/order.js:640
msgid "Add batch code"
msgstr ""
-#: templates/js/translated/order.js:487 templates/js/translated/order.js:591
+#: templates/js/translated/order.js:547 templates/js/translated/order.js:651
msgid "Add serial numbers"
msgstr ""
-#: templates/js/translated/order.js:499
+#: templates/js/translated/order.js:559
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:563 templates/js/translated/stock.js:2263
+#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2219
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:652
+#: templates/js/translated/order.js:712
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:653
+#: templates/js/translated/order.js:713
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:655
+#: templates/js/translated/order.js:715
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/order.js:674
+#: templates/js/translated/order.js:734
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:675
+#: templates/js/translated/order.js:735
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:865 templates/js/translated/part.js:809
+#: templates/js/translated/order.js:925 templates/js/translated/part.js:810
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:890 templates/js/translated/order.js:1338
+#: templates/js/translated/order.js:950 templates/js/translated/order.js:1426
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:1018 templates/js/translated/order.js:2496
+#: templates/js/translated/order.js:1074 templates/js/translated/order.js:2585
+msgid "Duplicate Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:1104 templates/js/translated/order.js:2607
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1030 templates/js/translated/order.js:2507
+#: templates/js/translated/order.js:1117 templates/js/translated/order.js:2618
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:1073
+#: templates/js/translated/order.js:1160
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:1100 templates/js/translated/order.js:2255
+#: templates/js/translated/order.js:1187 templates/js/translated/order.js:2343
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:1154 templates/js/translated/order.js:2280
-#: templates/js/translated/part.js:1863 templates/js/translated/part.js:2074
+#: templates/js/translated/order.js:1241 templates/js/translated/order.js:2368
+#: templates/js/translated/part.js:1864 templates/js/translated/part.js:2075
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1169 templates/js/translated/order.js:2296
+#: templates/js/translated/order.js:1256 templates/js/translated/order.js:2384
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:1210 templates/js/translated/order.js:2338
-#: templates/js/translated/part.js:918
+#: templates/js/translated/order.js:1297 templates/js/translated/order.js:2426
+#: templates/js/translated/part.js:919
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:1269 templates/js/translated/part.js:964
+#: templates/js/translated/order.js:1356 templates/js/translated/part.js:965
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1273 templates/js/translated/order.js:2452
+#: templates/js/translated/order.js:1360 templates/js/translated/order.js:2540
+msgid "Duplicate line item"
+msgstr ""
+
+#: templates/js/translated/order.js:1361 templates/js/translated/order.js:2541
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:1274 templates/js/translated/order.js:2456
+#: templates/js/translated/order.js:1362 templates/js/translated/order.js:2545
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1314
+#: templates/js/translated/order.js:1402
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1352
+#: templates/js/translated/order.js:1440
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1439
+#: templates/js/translated/order.js:1527
msgid "Edit shipment"
msgstr ""
-#: templates/js/translated/order.js:1442
+#: templates/js/translated/order.js:1530
msgid "Complete shipment"
msgstr ""
-#: templates/js/translated/order.js:1447
+#: templates/js/translated/order.js:1535
msgid "Delete shipment"
msgstr ""
-#: templates/js/translated/order.js:1467
+#: templates/js/translated/order.js:1555
msgid "Edit Shipment"
msgstr ""
-#: templates/js/translated/order.js:1484
+#: templates/js/translated/order.js:1572
msgid "Delete Shipment"
msgstr ""
-#: templates/js/translated/order.js:1518
+#: templates/js/translated/order.js:1606
msgid "No matching shipments found"
msgstr ""
-#: templates/js/translated/order.js:1528
+#: templates/js/translated/order.js:1616
msgid "Shipment Reference"
msgstr ""
-#: templates/js/translated/order.js:1552
+#: templates/js/translated/order.js:1640
msgid "Not shipped"
msgstr ""
-#: templates/js/translated/order.js:1558
+#: templates/js/translated/order.js:1646
msgid "Tracking"
msgstr ""
-#: templates/js/translated/order.js:1718
+#: templates/js/translated/order.js:1806
msgid "Allocate Stock Items to Sales Order"
msgstr ""
-#: templates/js/translated/order.js:1926
+#: templates/js/translated/order.js:2014
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:2015
+#: templates/js/translated/order.js:2103
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:2032
+#: templates/js/translated/order.js:2120
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:2033
+#: templates/js/translated/order.js:2121
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:2076 templates/js/translated/order.js:2165
-#: templates/js/translated/stock.js:1559
+#: templates/js/translated/order.js:2164 templates/js/translated/order.js:2253
+#: templates/js/translated/stock.js:1515
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/order.js:2084 templates/js/translated/order.js:2174
+#: templates/js/translated/order.js:2172 templates/js/translated/order.js:2262
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:2436
+#: templates/js/translated/order.js:2524
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:2442
+#: templates/js/translated/order.js:2530
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:2449 templates/js/translated/order.js:2616
+#: templates/js/translated/order.js:2537 templates/js/translated/order.js:2727
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:2460
+#: templates/js/translated/order.js:2549
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:2463
+#: templates/js/translated/order.js:2552
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:2522
+#: templates/js/translated/order.js:2633
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:2624
+#: templates/js/translated/order.js:2735
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:2638
+#: templates/js/translated/order.js:2749
msgid "No matching line items"
msgstr ""
@@ -8677,117 +8748,117 @@ msgstr ""
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:481
+#: templates/js/translated/part.js:482
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:509 templates/js/translated/part.js:594
+#: templates/js/translated/part.js:510 templates/js/translated/part.js:595
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:513 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:514 templates/js/translated/part.js:599
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:525
+#: templates/js/translated/part.js:526
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:529
+#: templates/js/translated/part.js:530
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:644
+#: templates/js/translated/part.js:645
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1034
+#: templates/js/translated/part.js:1035
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1058
+#: templates/js/translated/part.js:1059
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1125 templates/js/translated/part.js:1385
+#: templates/js/translated/part.js:1126 templates/js/translated/part.js:1386
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1295
+#: templates/js/translated/part.js:1296
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1318
+#: templates/js/translated/part.js:1319
#: templates/js/translated/table_filters.js:425
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1409 templates/js/translated/part.js:1581
-#: templates/js/translated/stock.js:2572
+#: templates/js/translated/part.js:1410 templates/js/translated/part.js:1582
+#: templates/js/translated/stock.js:2528
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1425
+#: templates/js/translated/part.js:1426
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1600 templates/js/translated/stock.js:2591
+#: templates/js/translated/part.js:1601 templates/js/translated/stock.js:2547
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1664
+#: templates/js/translated/part.js:1665
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1678 templates/js/translated/stock.js:2635
+#: templates/js/translated/part.js:1679 templates/js/translated/stock.js:2591
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1722
+#: templates/js/translated/part.js:1723
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1773 templates/js/translated/stock.js:1270
+#: templates/js/translated/part.js:1774 templates/js/translated/stock.js:1226
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1774 templates/js/translated/stock.js:1271
-#: templates/js/translated/stock.js:1517
+#: templates/js/translated/part.js:1775 templates/js/translated/stock.js:1227
+#: templates/js/translated/stock.js:1473
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1780
+#: templates/js/translated/part.js:1781
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1802
+#: templates/js/translated/part.js:1803
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1816
+#: templates/js/translated/part.js:1817
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1841
+#: templates/js/translated/part.js:1842
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1896
+#: templates/js/translated/part.js:1897
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1897
+#: templates/js/translated/part.js:1898
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1998
+#: templates/js/translated/part.js:1999
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:2017
+#: templates/js/translated/part.js:2018
msgid "Single Price Difference"
msgstr ""
@@ -8861,368 +8932,356 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:102
+#: templates/js/translated/stock.js:101
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:111
+#: templates/js/translated/stock.js:110
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:154
+#: templates/js/translated/stock.js:153
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:194
+#: templates/js/translated/stock.js:193
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:233
+#: templates/js/translated/stock.js:232
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/stock.js:238
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:381
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:395
+#: templates/js/translated/stock.js:394
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:420
+#: templates/js/translated/stock.js:419
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425
+#: templates/js/translated/stock.js:423 templates/js/translated/stock.js:424
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:441
+#: templates/js/translated/stock.js:440
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:461
+#: templates/js/translated/stock.js:460
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:470
+#: templates/js/translated/stock.js:469
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:515
-msgid "Export Stock"
-msgstr ""
-
-#: templates/js/translated/stock.js:526
-msgid "Include Sublocations"
-msgstr ""
-
-#: templates/js/translated/stock.js:527
-msgid "Include stock items in sublocations"
-msgstr ""
-
-#: templates/js/translated/stock.js:636
+#: templates/js/translated/stock.js:592
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:637
+#: templates/js/translated/stock.js:593
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:714
+#: templates/js/translated/stock.js:670
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:715
+#: templates/js/translated/stock.js:671
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:717
+#: templates/js/translated/stock.js:673
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:718
+#: templates/js/translated/stock.js:674
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:804
+#: templates/js/translated/stock.js:760
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:805
+#: templates/js/translated/stock.js:761
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:900
+#: templates/js/translated/stock.js:856
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:901
+#: templates/js/translated/stock.js:857
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:907
+#: templates/js/translated/stock.js:863
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:908
+#: templates/js/translated/stock.js:864
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:912
+#: templates/js/translated/stock.js:868
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:913
+#: templates/js/translated/stock.js:869
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:917
+#: templates/js/translated/stock.js:873
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:918 users/models.py:213
+#: templates/js/translated/stock.js:874 users/models.py:213
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:922
+#: templates/js/translated/stock.js:878
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1011
+#: templates/js/translated/stock.js:967
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1011
+#: templates/js/translated/stock.js:967
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1051
+#: templates/js/translated/stock.js:1007
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1209
+#: templates/js/translated/stock.js:1165
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1211
+#: templates/js/translated/stock.js:1167
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1216
+#: templates/js/translated/stock.js:1172
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1263
+#: templates/js/translated/stock.js:1219
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1266
+#: templates/js/translated/stock.js:1222
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1292
+#: templates/js/translated/stock.js:1248
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1348
+#: templates/js/translated/stock.js:1304
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1500
+#: templates/js/translated/stock.js:1456
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1522
+#: templates/js/translated/stock.js:1478
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1551
+#: templates/js/translated/stock.js:1507
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1511
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1563
+#: templates/js/translated/stock.js:1519
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1569
+#: templates/js/translated/stock.js:1525
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1727
+#: templates/js/translated/stock.js:1683
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1732
+#: templates/js/translated/stock.js:1688
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1691
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1739
+#: templates/js/translated/stock.js:1695
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1741
+#: templates/js/translated/stock.js:1697
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1747
+#: templates/js/translated/stock.js:1703
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1749
+#: templates/js/translated/stock.js:1705
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1751
+#: templates/js/translated/stock.js:1707
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1756
+#: templates/js/translated/stock.js:1712
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1763
+#: templates/js/translated/stock.js:1719
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1765
+#: templates/js/translated/stock.js:1721
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1767
+#: templates/js/translated/stock.js:1723
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1771
+#: templates/js/translated/stock.js:1727
#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1821
+#: templates/js/translated/stock.js:1777
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1903
+#: templates/js/translated/stock.js:1859
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1941
+#: templates/js/translated/stock.js:1897
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1962 templates/js/translated/stock.js:2010
+#: templates/js/translated/stock.js:1918 templates/js/translated/stock.js:1966
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:2050
+#: templates/js/translated/stock.js:2006
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:2077
+#: templates/js/translated/stock.js:2033
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:2079
+#: templates/js/translated/stock.js:2035
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:2278
+#: templates/js/translated/stock.js:2234
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2292
+#: templates/js/translated/stock.js:2248
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2293
+#: templates/js/translated/stock.js:2249
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2472
+#: templates/js/translated/stock.js:2428
msgid "Allocated Quantity"
msgstr ""
-#: templates/js/translated/stock.js:2682
+#: templates/js/translated/stock.js:2638
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2707
+#: templates/js/translated/stock.js:2663
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2726
+#: templates/js/translated/stock.js:2682
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2745
+#: templates/js/translated/stock.js:2701
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2763
+#: templates/js/translated/stock.js:2719
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2786
+#: templates/js/translated/stock.js:2742
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2794
+#: templates/js/translated/stock.js:2750
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2835
+#: templates/js/translated/stock.js:2791
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2836
+#: templates/js/translated/stock.js:2792
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2887
+#: templates/js/translated/stock.js:2843
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2938
+#: templates/js/translated/stock.js:2894
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2974
+#: templates/js/translated/stock.js:2930
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2975
+#: templates/js/translated/stock.js:2931
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2977
+#: templates/js/translated/stock.js:2933
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2978
+#: templates/js/translated/stock.js:2934
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2979
+#: templates/js/translated/stock.js:2935
msgid "The Stock Item is serialized and does not belong to another item"
msgstr ""
-#: templates/js/translated/stock.js:2992
+#: templates/js/translated/stock.js:2948
msgid "Select part to install"
msgstr ""
@@ -9429,60 +9488,68 @@ msgstr ""
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:368
+#: templates/js/translated/tables.js:50
+msgid "Export Table Data"
+msgstr ""
+
+#: templates/js/translated/tables.js:54
+msgid "Select File Format"
+msgstr ""
+
+#: templates/js/translated/tables.js:433
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:371
+#: templates/js/translated/tables.js:436
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:376
+#: templates/js/translated/tables.js:441
msgid "Showing all rows"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:382 templates/search_form.html:6
+#: templates/js/translated/tables.js:447 templates/search_form.html:6
#: templates/search_form.html:7
msgid "Search"
msgstr ""
-#: templates/js/translated/tables.js:385
+#: templates/js/translated/tables.js:450
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:388
+#: templates/js/translated/tables.js:453
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:391
+#: templates/js/translated/tables.js:456
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:394
+#: templates/js/translated/tables.js:459
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:397
+#: templates/js/translated/tables.js:462
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:400
+#: templates/js/translated/tables.js:465
msgid "All"
msgstr ""
@@ -9586,63 +9653,59 @@ msgstr ""
msgid "Email settings not configured"
msgstr ""
-#: templates/stock_table.html:14
-msgid "Export Stock Information"
-msgstr ""
-
-#: templates/stock_table.html:20
+#: templates/stock_table.html:17
msgid "Barcode Actions"
msgstr ""
-#: templates/stock_table.html:36
+#: templates/stock_table.html:33
msgid "Print test reports"
msgstr ""
-#: templates/stock_table.html:43
+#: templates/stock_table.html:40
msgid "Stock Options"
msgstr ""
-#: templates/stock_table.html:48
+#: templates/stock_table.html:45
msgid "Add to selected stock items"
msgstr ""
-#: templates/stock_table.html:49
+#: templates/stock_table.html:46
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:50
+#: templates/stock_table.html:47
msgid "Stocktake selected stock items"
msgstr ""
-#: templates/stock_table.html:51
+#: templates/stock_table.html:48
msgid "Move selected stock items"
msgstr ""
-#: templates/stock_table.html:52
+#: templates/stock_table.html:49
msgid "Merge selected stock items"
msgstr ""
-#: templates/stock_table.html:52
+#: templates/stock_table.html:49
msgid "Merge stock"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:50
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:52
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:52
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:55
msgid "Delete selected items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:55
msgid "Delete stock"
msgstr ""
diff --git a/InvenTree/locale/th/LC_MESSAGES/django.po b/InvenTree/locale/th/LC_MESSAGES/django.po
index 4d6e209abc..d7b247832d 100644
--- a/InvenTree/locale/th/LC_MESSAGES/django.po
+++ b/InvenTree/locale/th/LC_MESSAGES/django.po
@@ -1,10 +1,10 @@
-#: templates/js/translated/order.js:2090
+#: templates/js/translated/order.js:2178
msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-03-01 13:34+0000\n"
-"PO-Revision-Date: 2022-03-01 14:09\n"
+"POT-Creation-Date: 2022-03-07 04:31+0000\n"
+"PO-Revision-Date: 2022-03-07 04:47\n"
"Last-Translator: \n"
"Language-Team: Thai\n"
"Language: th_TH\n"
@@ -86,7 +86,7 @@ msgid "Duplicate serial: {sn}"
msgstr ""
#: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435
-#: stock/views.py:1101
+#: stock/views.py:983
msgid "Invalid quantity provided"
msgstr ""
@@ -114,100 +114,100 @@ msgstr ""
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:176
+#: InvenTree/models.py:185
msgid "Missing file"
msgstr ""
-#: InvenTree/models.py:177
+#: InvenTree/models.py:186
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:188 stock/models.py:2071
+#: InvenTree/models.py:197 stock/models.py:2123
#: templates/js/translated/attachment.js:119
msgid "Attachment"
msgstr ""
-#: InvenTree/models.py:189
+#: InvenTree/models.py:198
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:195 company/models.py:131 company/models.py:348
+#: InvenTree/models.py:204 company/models.py:131 company/models.py:348
#: company/models.py:564 order/models.py:127 part/models.py:860
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1346
+#: templates/js/translated/company.js:829 templates/js/translated/part.js:1347
msgid "Link"
msgstr ""
-#: InvenTree/models.py:196 build/models.py:330 part/models.py:861
-#: stock/models.py:566
+#: InvenTree/models.py:205 build/models.py:332 part/models.py:861
+#: stock/models.py:618
msgid "Link to external URL"
msgstr ""
-#: InvenTree/models.py:199 templates/js/translated/attachment.js:163
+#: InvenTree/models.py:208 templates/js/translated/attachment.js:163
msgid "Comment"
msgstr ""
-#: InvenTree/models.py:199
+#: InvenTree/models.py:208
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1277
+#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1277
#: common/models.py:1278 common/models.py:1506 common/models.py:1507
-#: part/models.py:2303 part/models.py:2323
+#: part/models.py:2317 part/models.py:2337
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2817
+#: templates/js/translated/stock.js:2773
msgid "User"
msgstr ""
-#: InvenTree/models.py:209
+#: InvenTree/models.py:218
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:232
+#: InvenTree/models.py:241
msgid "Filename must not be empty"
msgstr ""
-#: InvenTree/models.py:255
+#: InvenTree/models.py:264
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:265
+#: InvenTree/models.py:274
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:268
+#: InvenTree/models.py:277
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:275
+#: InvenTree/models.py:284
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:282
+#: InvenTree/models.py:291
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:317
+#: InvenTree/models.py:326
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1492
+#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1492
#: company/models.py:415 label/models.py:112 part/models.py:804
-#: part/models.py:2487 plugin/models.py:40 report/models.py:181
+#: part/models.py:2501 plugin/models.py:40 report/models.py:181
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:48
#: templates/InvenTree/settings/plugin.html:125
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:319
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:567
-#: templates/js/translated/part.js:706 templates/js/translated/part.js:1653
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/company.js:641 templates/js/translated/part.js:568
+#: templates/js/translated/part.js:707 templates/js/translated/part.js:1654
+#: templates/js/translated/stock.js:2573
msgid "Name"
msgstr ""
-#: InvenTree/models.py:340 build/models.py:207
+#: InvenTree/models.py:349 build/models.py:209
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
@@ -219,28 +219,28 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:92
#: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:765
-#: templates/js/translated/build.js:1920 templates/js/translated/company.js:345
+#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763
+#: templates/js/translated/build.js:1973 templates/js/translated/company.js:345
#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:911
-#: templates/js/translated/order.js:1105 templates/js/translated/order.js:1366
-#: templates/js/translated/part.js:626 templates/js/translated/part.js:1021
-#: templates/js/translated/part.js:1106 templates/js/translated/part.js:1276
-#: templates/js/translated/part.js:1672 templates/js/translated/part.js:1741
-#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2446
-#: templates/js/translated/stock.js:2629 templates/js/translated/stock.js:2667
+#: templates/js/translated/company.js:840 templates/js/translated/order.js:971
+#: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454
+#: templates/js/translated/part.js:627 templates/js/translated/part.js:1022
+#: templates/js/translated/part.js:1107 templates/js/translated/part.js:1277
+#: templates/js/translated/part.js:1673 templates/js/translated/part.js:1742
+#: templates/js/translated/stock.js:1656 templates/js/translated/stock.js:2402
+#: templates/js/translated/stock.js:2585 templates/js/translated/stock.js:2623
msgid "Description"
msgstr ""
-#: InvenTree/models.py:341
+#: InvenTree/models.py:350
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:349
+#: InvenTree/models.py:358
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:65 part/models.py:2805
+#: InvenTree/serializers.py:65 part/models.py:2820
msgid "Must be a valid number"
msgstr ""
@@ -294,87 +294,87 @@ msgstr ""
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:665
msgid "German"
msgstr ""
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:666
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:667
msgid "English"
msgstr ""
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:668
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:669
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:670
msgid "French"
msgstr ""
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:671
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:672
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:673
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:674
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:675
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:676
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:677
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:678
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:679
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:680
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:681
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:682
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:683
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:684
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:685
msgid "Chinese"
msgstr ""
@@ -421,7 +421,7 @@ msgid "Returned"
msgstr ""
#: InvenTree/status_codes.py:143 order/models.py:997
-#: templates/js/translated/order.js:2097 templates/js/translated/order.js:2394
+#: templates/js/translated/order.js:2185 templates/js/translated/order.js:2482
msgid "Shipped"
msgstr ""
@@ -501,7 +501,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2204
+#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2160
msgid "Merged stock items"
msgstr ""
@@ -593,43 +593,43 @@ msgstr ""
msgid "System Information"
msgstr ""
-#: barcodes/api.py:54 barcodes/api.py:152
+#: barcodes/api.py:55 barcodes/api.py:156
msgid "Must provide barcode_data parameter"
msgstr ""
-#: barcodes/api.py:128
+#: barcodes/api.py:132
msgid "No match found for barcode data"
msgstr ""
-#: barcodes/api.py:130
+#: barcodes/api.py:134
msgid "Match found for barcode data"
msgstr ""
-#: barcodes/api.py:155
+#: barcodes/api.py:159
msgid "Must provide stockitem parameter"
msgstr ""
-#: barcodes/api.py:162
+#: barcodes/api.py:166
msgid "No matching stock item found"
msgstr ""
-#: barcodes/api.py:193
+#: barcodes/api.py:197
msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:197
+#: barcodes/api.py:201
msgid "Barcode already matches Stock Location"
msgstr ""
-#: barcodes/api.py:201
+#: barcodes/api.py:205
msgid "Barcode already matches Part"
msgstr ""
-#: barcodes/api.py:207 barcodes/api.py:219
+#: barcodes/api.py:211 barcodes/api.py:223
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: barcodes/api.py:225
+#: barcodes/api.py:229
msgid "Barcode associated with Stock Item"
msgstr ""
@@ -641,18 +641,18 @@ msgstr ""
msgid "Confirm build cancellation"
msgstr ""
-#: build/models.py:133
+#: build/models.py:135
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:139 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:676 templates/js/translated/stock.js:2422
+#: templates/js/translated/build.js:677 templates/js/translated/stock.js:2378
msgid "Build Order"
msgstr ""
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:140 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:92
#: order/templates/order/so_sidebar.html:13
@@ -662,41 +662,41 @@ msgstr ""
msgid "Build Orders"
msgstr ""
-#: build/models.py:198
+#: build/models.py:200
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:213 order/models.py:563
-#: order/models.py:843 part/models.py:2716
+#: build/models.py:201 order/models.py:213 order/models.py:563
+#: order/models.py:843 part/models.py:2731
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:772 templates/js/translated/build.js:1401
-#: templates/js/translated/order.js:1136 templates/js/translated/order.js:2261
+#: templates/js/translated/bom.js:770 templates/js/translated/build.js:1402
+#: templates/js/translated/order.js:1223 templates/js/translated/order.js:2349
msgid "Reference"
msgstr ""
-#: build/models.py:210
+#: build/models.py:212
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:219 build/templates/build/build_base.html:169
+#: build/models.py:221 build/templates/build/build_base.html:169
#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:222
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:225 build/templates/build/build_base.html:77
+#: build/models.py:227 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
#: order/models.py:912 order/models.py:986
#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359
-#: part/models.py:2249 part/models.py:2265 part/models.py:2284
-#: part/models.py:2301 part/models.py:2403 part/models.py:2525
-#: part/models.py:2615 part/models.py:2691 part/models.py:2998
-#: part/serializers.py:666 part/templates/part/part_app_base.html:8
+#: part/models.py:2263 part/models.py:2279 part/models.py:2298
+#: part/models.py:2315 part/models.py:2417 part/models.py:2539
+#: part/models.py:2629 part/models.py:2706 part/models.py:3013
+#: part/serializers.py:669 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: part/templates/part/upload_bom.html:52
@@ -707,231 +707,231 @@ msgstr ""
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551
-#: templates/js/translated/bom.js:730 templates/js/translated/build.js:902
-#: templates/js/translated/build.js:1270 templates/js/translated/build.js:1655
-#: templates/js/translated/build.js:1925 templates/js/translated/company.js:492
+#: templates/js/translated/bom.js:728 templates/js/translated/build.js:903
+#: templates/js/translated/build.js:1271 templates/js/translated/build.js:1666
+#: templates/js/translated/build.js:1978 templates/js/translated/company.js:492
#: templates/js/translated/company.js:749 templates/js/translated/order.js:84
-#: templates/js/translated/order.js:651 templates/js/translated/order.js:1090
-#: templates/js/translated/order.js:1693 templates/js/translated/order.js:2050
-#: templates/js/translated/order.js:2245 templates/js/translated/part.js:1006
-#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1254
-#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1657
-#: templates/js/translated/stock.js:2892 templates/js/translated/stock.js:2991
+#: templates/js/translated/order.js:711 templates/js/translated/order.js:1177
+#: templates/js/translated/order.js:1781 templates/js/translated/order.js:2138
+#: templates/js/translated/order.js:2333 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1088 templates/js/translated/part.js:1255
+#: templates/js/translated/stock.js:518 templates/js/translated/stock.js:683
+#: templates/js/translated/stock.js:890 templates/js/translated/stock.js:1613
+#: templates/js/translated/stock.js:2848 templates/js/translated/stock.js:2947
msgid "Part"
msgstr ""
-#: build/models.py:233
+#: build/models.py:235
msgid "Select part to build"
msgstr ""
-#: build/models.py:238
+#: build/models.py:240
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:242
+#: build/models.py:244
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 templates/js/translated/build.js:1643
-#: templates/js/translated/order.js:1681
+#: build/models.py:249 build/serializers.py:729
+#: templates/js/translated/build.js:1654 templates/js/translated/order.js:1769
msgid "Source Location"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:256
+#: build/models.py:258
msgid "Destination Location"
msgstr ""
-#: build/models.py:260
+#: build/models.py:262
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:264
+#: build/models.py:266
msgid "Build Quantity"
msgstr ""
-#: build/models.py:267
+#: build/models.py:269
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:271
+#: build/models.py:273
msgid "Completed items"
msgstr ""
-#: build/models.py:273
+#: build/models.py:275
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:277 part/templates/part/part_base.html:234
+#: build/models.py:279 part/templates/part/part_base.html:234
msgid "Build Status"
msgstr ""
-#: build/models.py:281
+#: build/models.py:283
msgid "Build status code"
msgstr ""
-#: build/models.py:285 build/serializers.py:218 order/serializers.py:272
-#: stock/models.py:570 templates/js/translated/order.js:513
+#: build/models.py:287 build/serializers.py:218 order/serializers.py:272
+#: stock/models.py:622 templates/js/translated/order.js:573
msgid "Batch Code"
msgstr ""
-#: build/models.py:289 build/serializers.py:219
+#: build/models.py:291 build/serializers.py:219
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:129 part/models.py:999
-#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1379
+#: build/models.py:294 order/models.py:129 part/models.py:999
+#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1467
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:585
+#: build/models.py:298 order/models.py:585
msgid "Target completion date"
msgstr ""
-#: build/models.py:297
+#: build/models.py:299
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:255
-#: templates/js/translated/build.js:2002
+#: build/models.py:302 order/models.py:255
+#: templates/js/translated/build.js:2055
msgid "Completion Date"
msgstr ""
-#: build/models.py:306
+#: build/models.py:308
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:1970
+#: build/models.py:316 templates/js/translated/build.js:2023
msgid "Issued by"
msgstr ""
-#: build/models.py:315
+#: build/models.py:317
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:323 build/templates/build/build_base.html:190
+#: build/models.py:325 build/templates/build/build_base.html:190
#: build/templates/build/detail.html:116 order/models.py:143
#: order/templates/order/order_base.html:170
#: order/templates/order/sales_order_base.html:182 part/models.py:1003
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1982 templates/js/translated/order.js:945
+#: templates/js/translated/build.js:2035 templates/js/translated/order.js:1005
msgid "Responsible"
msgstr ""
-#: build/models.py:324
+#: build/models.py:326
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:329 build/templates/build/detail.html:102
+#: build/models.py:331 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:564
+#: part/templates/part/part_base.html:354 stock/models.py:616
#: stock/templates/stock/item_base.html:352
msgid "External Link"
msgstr ""
-#: build/models.py:334 build/serializers.py:381
+#: build/models.py:336 build/serializers.py:381
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
#: order/models.py:147 order/models.py:845 order/models.py:1107
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/models.py:988
-#: part/templates/part/detail.html:146 part/templates/part/part_sidebar.html:57
+#: part/templates/part/detail.html:141 part/templates/part/part_sidebar.html:57
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:137 stock/forms.py:171 stock/models.py:636
-#: stock/models.py:1971 stock/models.py:2077 stock/serializers.py:332
+#: stock/forms.py:137 stock/forms.py:171 stock/models.py:688
+#: stock/models.py:2023 stock/models.py:2129 stock/serializers.py:332
#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:936
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1257
-#: templates/js/translated/order.js:1562 templates/js/translated/order.js:2419
-#: templates/js/translated/stock.js:1344 templates/js/translated/stock.js:1935
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934
+#: templates/js/translated/company.js:845 templates/js/translated/order.js:1344
+#: templates/js/translated/order.js:1650 templates/js/translated/order.js:2507
+#: templates/js/translated/stock.js:1300 templates/js/translated/stock.js:1891
msgid "Notes"
msgstr ""
-#: build/models.py:335
+#: build/models.py:337
msgid "Extra build notes"
msgstr ""
-#: build/models.py:748
+#: build/models.py:750
msgid "No build output specified"
msgstr ""
-#: build/models.py:751
+#: build/models.py:753
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:754
+#: build/models.py:756
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1060
+#: build/models.py:1162
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1069
+#: build/models.py:1171
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1079
+#: build/models.py:1181
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1085 order/models.py:1225
+#: build/models.py:1187 order/models.py:1225
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1091
+#: build/models.py:1193
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1148
+#: build/models.py:1250
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1217 stock/templates/stock/item_base.html:324
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898
+#: build/models.py:1319 stock/templates/stock/item_base.html:324
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1951
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1218
+#: build/models.py:1320
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1234 build/serializers.py:576 order/serializers.py:783
+#: build/models.py:1336 build/serializers.py:576 order/serializers.py:783
#: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635
#: stock/serializers.py:753 stock/templates/stock/item_base.html:9
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:346
-#: templates/js/translated/build.js:687 templates/js/translated/build.js:692
-#: templates/js/translated/build.js:1657 templates/js/translated/build.js:2050
-#: templates/js/translated/order.js:85 templates/js/translated/order.js:1694
-#: templates/js/translated/order.js:1949 templates/js/translated/order.js:1954
-#: templates/js/translated/order.js:2057 templates/js/translated/order.js:2147
-#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728
-#: templates/js/translated/stock.js:2753
+#: templates/js/translated/build.js:688 templates/js/translated/build.js:693
+#: templates/js/translated/build.js:1668 templates/js/translated/build.js:2103
+#: templates/js/translated/order.js:85 templates/js/translated/order.js:1782
+#: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:2235
+#: templates/js/translated/stock.js:519 templates/js/translated/stock.js:684
+#: templates/js/translated/stock.js:2709
msgid "Stock Item"
msgstr ""
-#: build/models.py:1235
+#: build/models.py:1337
msgid "Source stock item"
msgstr ""
-#: build/models.py:1247 build/serializers.py:188
+#: build/models.py:1349 build/serializers.py:188
#: build/templates/build/build_base.html:82
#: build/templates/build/detail.html:35 common/models.py:1317
#: company/forms.py:42 company/templates/company/supplier_part.html:251
#: order/models.py:836 order/models.py:1265 order/serializers.py:903
#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144
-#: part/forms.py:160 part/forms.py:176 part/models.py:2707
-#: part/templates/part/detail.html:1008 part/templates/part/detail.html:1094
+#: part/forms.py:160 part/forms.py:176 part/models.py:2722
+#: part/templates/part/detail.html:994 part/templates/part/detail.html:1080
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_build_order_base.html:114
@@ -943,32 +943,32 @@ msgstr ""
#: stock/templates/stock/item_base.html:176
#: stock/templates/stock/item_base.html:241
#: stock/templates/stock/item_base.html:249
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:780
-#: templates/js/translated/build.js:375 templates/js/translated/build.js:523
-#: templates/js/translated/build.js:714 templates/js/translated/build.js:911
-#: templates/js/translated/build.js:921 templates/js/translated/build.js:1297
-#: templates/js/translated/build.js:1658
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778
+#: templates/js/translated/build.js:376 templates/js/translated/build.js:524
+#: templates/js/translated/build.js:715 templates/js/translated/build.js:912
+#: templates/js/translated/build.js:922 templates/js/translated/build.js:1298
+#: templates/js/translated/build.js:1669
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:101 templates/js/translated/order.js:1142
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:1976
-#: templates/js/translated/order.js:2064 templates/js/translated/order.js:2153
-#: templates/js/translated/order.js:2267 templates/js/translated/part.js:906
-#: templates/js/translated/part.js:1884 templates/js/translated/part.js:2007
-#: templates/js/translated/part.js:2085 templates/js/translated/stock.js:391
-#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758
-#: templates/js/translated/stock.js:2802 templates/js/translated/stock.js:2904
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:1229
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:2064
+#: templates/js/translated/order.js:2152 templates/js/translated/order.js:2241
+#: templates/js/translated/order.js:2355 templates/js/translated/part.js:907
+#: templates/js/translated/part.js:1885 templates/js/translated/part.js:2008
+#: templates/js/translated/part.js:2086 templates/js/translated/stock.js:390
+#: templates/js/translated/stock.js:544 templates/js/translated/stock.js:714
+#: templates/js/translated/stock.js:2758 templates/js/translated/stock.js:2860
msgid "Quantity"
msgstr ""
-#: build/models.py:1248
+#: build/models.py:1350
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1256
+#: build/models.py:1358
msgid "Install into"
msgstr ""
-#: build/models.py:1257
+#: build/models.py:1359
msgid "Destination stock item"
msgstr ""
@@ -997,8 +997,8 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:201 build/serializers.py:596 order/models.py:280
-#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:826
-#: stock/models.py:404 stock/models.py:1180 stock/serializers.py:305
+#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:836
+#: stock/models.py:456 stock/models.py:1232 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1012,8 +1012,8 @@ msgstr ""
#: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907
#: stock/forms.py:78 stock/serializers.py:314
-#: templates/js/translated/order.js:524 templates/js/translated/stock.js:238
-#: templates/js/translated/stock.js:392
+#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237
+#: templates/js/translated/stock.js:391
msgid "Serial Numbers"
msgstr ""
@@ -1029,7 +1029,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:275 stock/api.py:549
+#: build/serializers.py:275 stock/api.py:551
msgid "The following serial numbers already exist"
msgstr ""
@@ -1041,13 +1041,13 @@ msgstr ""
#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788
#: stock/serializers.py:1029 stock/templates/stock/item_base.html:292
#: templates/js/translated/barcode.js:384
-#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:699
-#: templates/js/translated/build.js:1309 templates/js/translated/order.js:551
-#: templates/js/translated/order.js:1961 templates/js/translated/order.js:2072
-#: templates/js/translated/order.js:2080 templates/js/translated/order.js:2161
-#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564
-#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936
-#: templates/js/translated/stock.js:1807 templates/js/translated/stock.js:2694
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700
+#: templates/js/translated/build.js:1310 templates/js/translated/order.js:611
+#: templates/js/translated/order.js:2049 templates/js/translated/order.js:2160
+#: templates/js/translated/order.js:2168 templates/js/translated/order.js:2249
+#: templates/js/translated/part.js:179 templates/js/translated/stock.js:520
+#: templates/js/translated/stock.js:685 templates/js/translated/stock.js:892
+#: templates/js/translated/stock.js:1763 templates/js/translated/stock.js:2650
msgid "Location"
msgstr ""
@@ -1058,10 +1058,10 @@ msgstr ""
#: build/serializers.py:377 build/templates/build/build_base.html:142
#: build/templates/build/detail.html:63 order/models.py:579
#: order/serializers.py:290 stock/templates/stock/item_base.html:182
-#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1954
-#: templates/js/translated/order.js:656 templates/js/translated/order.js:915
-#: templates/js/translated/order.js:1371 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2771 templates/js/translated/stock.js:2920
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2007
+#: templates/js/translated/order.js:716 templates/js/translated/order.js:975
+#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2727 templates/js/translated/stock.js:2876
msgid "Status"
msgstr ""
@@ -1073,7 +1073,7 @@ msgstr ""
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:445 templates/js/translated/build.js:150
+#: build/serializers.py:445 templates/js/translated/build.js:151
msgid "Required stock has not been fully allocated"
msgstr ""
@@ -1085,7 +1085,7 @@ msgstr ""
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:461 templates/js/translated/build.js:154
+#: build/serializers.py:461 templates/js/translated/build.js:155
msgid "Required build quantity has not been completed"
msgstr ""
@@ -1097,8 +1097,8 @@ msgstr ""
msgid "No build outputs have been created for this build order"
msgstr ""
-#: build/serializers.py:501 build/serializers.py:550 part/models.py:2831
-#: part/models.py:2990
+#: build/serializers.py:501 build/serializers.py:550 part/models.py:2846
+#: part/models.py:3005
msgid "BOM Item"
msgstr ""
@@ -1135,6 +1135,26 @@ msgstr ""
msgid "Allocation items must be provided"
msgstr ""
+#: build/serializers.py:730
+msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
+msgstr ""
+
+#: build/serializers.py:735
+msgid "Interchangeable Stock"
+msgstr ""
+
+#: build/serializers.py:736
+msgid "Stock items in multiple locations can be used interchangeably"
+msgstr ""
+
+#: build/serializers.py:741
+msgid "Substitute Stock"
+msgstr ""
+
+#: build/serializers.py:742
+msgid "Allow allocation of substitute parts"
+msgstr ""
+
#: build/tasks.py:98
msgid "Stock required for build order"
msgstr ""
@@ -1206,9 +1226,9 @@ msgstr ""
#: order/templates/order/order_base.html:156
#: order/templates/order/sales_order_base.html:163
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1994 templates/js/translated/order.js:932
-#: templates/js/translated/order.js:1204 templates/js/translated/order.js:1387
-#: templates/js/translated/order.js:2330 templates/js/translated/part.js:910
+#: templates/js/translated/build.js:2047 templates/js/translated/order.js:992
+#: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475
+#: templates/js/translated/order.js:2418 templates/js/translated/part.js:911
msgid "Target Date"
msgstr ""
@@ -1230,7 +1250,7 @@ msgstr ""
#: build/templates/build/build_base.html:163
#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
#: order/templates/order/sales_order_base.html:170
-#: templates/js/translated/build.js:1940
+#: templates/js/translated/build.js:1993
#: templates/js/translated/table_filters.js:365
msgid "Completed"
msgstr ""
@@ -1242,7 +1262,7 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:286
-#: templates/js/translated/order.js:1326 templates/js/translated/stock.js:2436
+#: templates/js/translated/order.js:1414 templates/js/translated/stock.js:2392
msgid "Sales Order"
msgstr ""
@@ -1277,7 +1297,7 @@ msgid "Stock can be taken from any available location."
msgstr ""
#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133
-#: templates/js/translated/order.js:657 templates/js/translated/order.js:1246
+#: templates/js/translated/order.js:717 templates/js/translated/order.js:1333
msgid "Destination"
msgstr ""
@@ -1285,13 +1305,13 @@ msgstr ""
msgid "Destination location not specified"
msgstr ""
-#: build/templates/build/detail.html:74 templates/js/translated/build.js:929
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:930
msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:310
-#: templates/js/translated/stock.js:1796 templates/js/translated/stock.js:2927
+#: templates/js/translated/stock.js:1752 templates/js/translated/stock.js:2883
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:238
msgid "Batch"
@@ -1300,7 +1320,7 @@ msgstr ""
#: build/templates/build/detail.html:127
#: order/templates/order/order_base.html:143
#: order/templates/order/sales_order_base.html:157
-#: templates/js/translated/build.js:1962
+#: templates/js/translated/build.js:2015
msgid "Created"
msgstr ""
@@ -1320,7 +1340,7 @@ msgstr ""
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:177 templates/js/translated/build.js:1484
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1485
msgid "Unallocate stock"
msgstr ""
@@ -1329,111 +1349,119 @@ msgid "Unallocate Stock"
msgstr ""
#: build/templates/build/detail.html:180
-msgid "Allocate stock to build"
+msgid "Automatically allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
+#: build/templates/build/detail.html:181
+msgid "Auto Allocate"
+msgstr ""
+
+#: build/templates/build/detail.html:183
+msgid "Manually allocate stock to build"
+msgstr ""
+
+#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8
msgid "Allocate Stock"
msgstr ""
-#: build/templates/build/detail.html:184
+#: build/templates/build/detail.html:187
msgid "Order required parts"
msgstr ""
-#: build/templates/build/detail.html:185
+#: build/templates/build/detail.html:188
#: company/templates/company/detail.html:38
#: company/templates/company/detail.html:85 order/views.py:463
-#: part/templates/part/category.html:177
+#: part/templates/part/category.html:174
msgid "Order Parts"
msgstr ""
-#: build/templates/build/detail.html:197
+#: build/templates/build/detail.html:200
msgid "Untracked stock has been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:201
+#: build/templates/build/detail.html:204
msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:208
+#: build/templates/build/detail.html:211
msgid "Allocate selected items"
msgstr ""
-#: build/templates/build/detail.html:218
+#: build/templates/build/detail.html:221
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:230
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:231
+#: build/templates/build/detail.html:234
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:232
+#: build/templates/build/detail.html:235
msgid "New Build Output"
msgstr ""
-#: build/templates/build/detail.html:246
+#: build/templates/build/detail.html:249
msgid "Output Actions"
msgstr ""
-#: build/templates/build/detail.html:250
+#: build/templates/build/detail.html:253
msgid "Complete selected build outputs"
msgstr ""
-#: build/templates/build/detail.html:251
+#: build/templates/build/detail.html:254
msgid "Complete outputs"
msgstr ""
-#: build/templates/build/detail.html:253
+#: build/templates/build/detail.html:256
msgid "Delete selected build outputs"
msgstr ""
-#: build/templates/build/detail.html:254
+#: build/templates/build/detail.html:257
msgid "Delete outputs"
msgstr ""
-#: build/templates/build/detail.html:270
+#: build/templates/build/detail.html:273
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19
+#: build/templates/build/detail.html:285 build/templates/build/sidebar.html:19
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:107
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:222
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217
#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:105
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:298
+#: build/templates/build/detail.html:301
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:302 build/templates/build/detail.html:478
-#: company/templates/company/detail.html:188
-#: company/templates/company/detail.html:215
+#: build/templates/build/detail.html:305 build/templates/build/detail.html:481
+#: company/templates/company/detail.html:190
+#: company/templates/company/detail.html:217
#: order/templates/order/purchase_order_detail.html:80
#: order/templates/order/purchase_order_detail.html:108
#: order/templates/order/sales_order_detail.html:127
#: order/templates/order/sales_order_detail.html:186
-#: part/templates/part/detail.html:150 stock/templates/stock/item.html:125
+#: part/templates/part/detail.html:145 stock/templates/stock/item.html:125
#: stock/templates/stock/item.html:223
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:519
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:520
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:329
+#: build/templates/build/index.html:18 part/templates/part/detail.html:322
msgid "New Build Order"
msgstr ""
@@ -1658,7 +1686,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:732 part/models.py:2527 report/models.py:187
+#: common/models.py:732 part/models.py:2541 report/models.py:187
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:417
msgid "Template"
@@ -1668,7 +1696,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:739 part/models.py:951 templates/js/translated/bom.js:1300
+#: common/models.py:739 part/models.py:951 templates/js/translated/bom.js:1305
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:429
msgid "Assembly"
@@ -2243,7 +2271,7 @@ msgstr ""
#: common/models.py:1325 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:937 templates/js/translated/part.js:1889
+#: templates/js/translated/part.js:938 templates/js/translated/part.js:1890
msgid "Price"
msgstr ""
@@ -2337,14 +2365,14 @@ msgstr ""
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
-#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:210
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208
#: templates/patterns/wizard/upload.html:35
msgid "Upload File"
msgstr ""
#: common/views.py:94 order/views.py:244
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:211
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:209
#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
@@ -2472,7 +2500,7 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:508
+#: company/models.py:320 company/models.py:535 stock/models.py:560
#: stock/templates/stock/item_base.html:137 templates/js/translated/bom.js:541
msgid "Base Part"
msgstr ""
@@ -2499,8 +2527,8 @@ msgstr ""
#: company/models.py:342 company/templates/company/manufacturer_part.html:96
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1124
-#: templates/js/translated/part.js:245 templates/js/translated/part.js:895
+#: templates/js/translated/company.js:818 templates/js/translated/order.js:1211
+#: templates/js/translated/part.js:245 templates/js/translated/part.js:896
msgid "MPN"
msgstr ""
@@ -2529,8 +2557,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2064 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1331
+#: stock/models.py:2116 templates/js/translated/company.js:647
+#: templates/js/translated/part.js:716 templates/js/translated/stock.js:1287
msgid "Value"
msgstr ""
@@ -2538,10 +2566,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:945 part/models.py:2495
+#: company/models.py:429 part/models.py:945 part/models.py:2509
#: part/templates/part/part_base.html:288
#: templates/InvenTree/settings/settings.html:324
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:721
+#: templates/js/translated/company.js:653 templates/js/translated/part.js:722
msgid "Units"
msgstr ""
@@ -2559,8 +2587,8 @@ msgstr ""
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237
#: part/bom.py:265 stock/templates/stock/item_base.html:376
#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:898
-#: templates/js/translated/part.js:215 templates/js/translated/part.js:863
+#: templates/js/translated/company.js:774 templates/js/translated/order.js:958
+#: templates/js/translated/part.js:215 templates/js/translated/part.js:864
#: templates/js/translated/table_filters.js:388
msgid "Supplier"
msgstr ""
@@ -2570,8 +2598,8 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1111
-#: templates/js/translated/part.js:226 templates/js/translated/part.js:881
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198
+#: templates/js/translated/part.js:226 templates/js/translated/part.js:882
msgid "SKU"
msgstr ""
@@ -2592,7 +2620,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:119
-#: part/models.py:2719 part/templates/part/upload_bom.html:59
+#: part/models.py:2734 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409
msgid "Note"
@@ -2607,8 +2635,8 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:532 stock/templates/stock/item_base.html:317
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1931
+#: stock/models.py:584 stock/templates/stock/item_base.html:317
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1887
msgid "Packaging"
msgstr ""
@@ -2676,11 +2704,11 @@ msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:83 order/models.py:574
-#: order/templates/order/sales_order_base.html:115 stock/models.py:551
-#: stock/models.py:552 stock/serializers.py:683
+#: order/templates/order/sales_order_base.html:115 stock/models.py:603
+#: stock/models.py:604 stock/serializers.py:683
#: stock/templates/stock/item_base.html:269
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1348
-#: templates/js/translated/stock.js:2735
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1436
+#: templates/js/translated/stock.js:2691
#: templates/js/translated/table_filters.js:392
msgid "Customer"
msgstr ""
@@ -2711,7 +2739,7 @@ msgstr ""
#: company/templates/company/detail.html:20
#: company/templates/company/manufacturer_part.html:118
-#: part/templates/part/detail.html:367
+#: part/templates/part/detail.html:360
msgid "New Supplier Part"
msgstr ""
@@ -2719,14 +2747,14 @@ msgstr ""
#: company/templates/company/detail.html:79
#: company/templates/company/manufacturer_part.html:127
#: company/templates/company/manufacturer_part.html:156
-#: part/templates/part/category.html:171 part/templates/part/detail.html:376
-#: part/templates/part/detail.html:405
+#: part/templates/part/category.html:168 part/templates/part/detail.html:369
+#: part/templates/part/detail.html:398
msgid "Options"
msgstr ""
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177
+#: part/templates/part/category.html:174
msgid "Order parts"
msgstr ""
@@ -2748,7 +2776,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:395
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:388
msgid "New Manufacturer Part"
msgstr ""
@@ -2762,7 +2790,7 @@ msgstr ""
#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:40
+#: part/templates/part/detail.html:80 part/templates/part/part_sidebar.html:40
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
@@ -2784,7 +2812,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:44
+#: part/templates/part/detail.html:103 part/templates/part/part_sidebar.html:44
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
@@ -2802,23 +2830,23 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/detail.html:168
-#: templates/js/translated/build.js:1281
+#: templates/js/translated/build.js:1282
msgid "Assigned Stock"
msgstr ""
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:186
msgid "Company Notes"
msgstr ""
-#: company/templates/company/detail.html:384
+#: company/templates/company/detail.html:380
#: company/templates/company/manufacturer_part.html:215
-#: part/templates/part/detail.html:449
+#: part/templates/part/detail.html:442
msgid "Delete Supplier Parts?"
msgstr ""
-#: company/templates/company/detail.html:385
+#: company/templates/company/detail.html:381
#: company/templates/company/manufacturer_part.html:216
-#: part/templates/part/detail.html:450
+#: part/templates/part/detail.html:443
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2835,7 +2863,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:34
#: company/templates/company/supplier_part.html:159
-#: part/templates/part/detail.html:88 part/templates/part/part_base.html:76
+#: part/templates/part/detail.html:83 part/templates/part/part_base.html:76
msgid "Order part"
msgstr ""
@@ -2862,14 +2890,14 @@ msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
-#: part/templates/part/detail.html:378
+#: part/templates/part/detail.html:371
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
#: company/templates/company/manufacturer_part.html:158
#: company/templates/company/manufacturer_part.html:254
-#: part/templates/part/detail.html:378 part/templates/part/detail.html:407
+#: part/templates/part/detail.html:371 part/templates/part/detail.html:400
#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31
#: users/models.py:217
msgid "Delete"
@@ -2878,12 +2906,12 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:143
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:17
-#: part/templates/part/detail.html:196 part/templates/part/part_sidebar.html:9
+#: part/templates/part/detail.html:191 part/templates/part/part_sidebar.html:9
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:147
-#: part/templates/part/detail.html:201
+#: part/templates/part/detail.html:196
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:66
msgid "New Parameter"
@@ -2894,7 +2922,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:191
-#: part/templates/part/detail.html:908
+#: part/templates/part/detail.html:894
msgid "Add Parameter"
msgstr ""
@@ -2923,9 +2951,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:516
+#: company/templates/company/supplier_part.html:24 stock/models.py:568
#: stock/templates/stock/item_base.html:381
-#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1888
+#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1844
msgid "Supplier Part"
msgstr ""
@@ -2951,7 +2979,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:166
-#: templates/js/translated/stock.js:368
+#: templates/js/translated/stock.js:367
msgid "New Stock Item"
msgstr ""
@@ -2961,7 +2989,7 @@ msgid "Supplier Part Orders"
msgstr ""
#: company/templates/company/supplier_part.html:160
-#: part/templates/part/detail.html:89
+#: part/templates/part/detail.html:84
msgid "Order Part"
msgstr ""
@@ -2972,7 +3000,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1319
+#: part/templates/part/prices.html:271 part/views.py:1254
msgid "Add Price Break"
msgstr ""
@@ -2980,11 +3008,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1381
+#: company/templates/company/supplier_part.html:224 part/views.py:1316
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1367
+#: company/templates/company/supplier_part.html:238 part/views.py:1302
msgid "Edit Price Break"
msgstr ""
@@ -3002,10 +3030,10 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:150
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/bom.js:553 templates/js/translated/part.js:495
-#: templates/js/translated/part.js:630 templates/js/translated/part.js:1147
-#: templates/js/translated/part.js:1308 templates/js/translated/stock.js:935
-#: templates/js/translated/stock.js:1711 templates/navbar.html:28
+#: templates/js/translated/bom.js:553 templates/js/translated/part.js:496
+#: templates/js/translated/part.js:631 templates/js/translated/part.js:1148
+#: templates/js/translated/part.js:1309 templates/js/translated/stock.js:891
+#: templates/js/translated/stock.js:1667 templates/navbar.html:28
msgid "Stock"
msgstr ""
@@ -3028,7 +3056,7 @@ msgstr ""
#: stock/templates/stock/location.html:150
#: stock/templates/stock/location.html:162
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2641
+#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2597
#: templates/stats.html:105 templates/stats.html:114 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -3058,20 +3086,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:591
+#: company/views.py:129 part/views.py:589
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:623
+#: company/views.py:158 part/views.py:621
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:630
+#: company/views.py:165 part/views.py:628
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:639
+#: company/views.py:174 part/views.py:637
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3190,7 +3218,7 @@ msgid "Company from which the items are being ordered"
msgstr ""
#: order/models.py:231 order/templates/order/order_base.html:118
-#: templates/js/translated/order.js:907
+#: templates/js/translated/order.js:967
msgid "Supplier Reference"
msgstr ""
@@ -3247,7 +3275,7 @@ msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
#: order/models.py:589 order/models.py:1084
-#: templates/js/translated/order.js:1395 templates/js/translated/order.js:1546
+#: templates/js/translated/order.js:1483 templates/js/translated/order.js:1634
msgid "Shipment Date"
msgstr ""
@@ -3292,7 +3320,7 @@ msgid "Supplier part must match supplier"
msgstr ""
#: order/models.py:891 order/models.py:982 order/models.py:1078
-#: templates/js/translated/order.js:1937 templates/js/translated/stock.js:2403
+#: templates/js/translated/order.js:2025 templates/js/translated/stock.js:2359
msgid "Order"
msgstr ""
@@ -3300,8 +3328,8 @@ msgstr ""
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:331
-#: templates/js/translated/order.js:876 templates/js/translated/part.js:838
-#: templates/js/translated/stock.js:1865 templates/js/translated/stock.js:2716
+#: templates/js/translated/order.js:936 templates/js/translated/part.js:839
+#: templates/js/translated/stock.js:1821 templates/js/translated/stock.js:2672
msgid "Purchase Order"
msgstr ""
@@ -3310,8 +3338,8 @@ msgid "Supplier part"
msgstr ""
#: order/models.py:920 order/templates/order/order_base.html:163
-#: templates/js/translated/order.js:654 templates/js/translated/order.js:1226
-#: templates/js/translated/part.js:932 templates/js/translated/part.js:959
+#: templates/js/translated/order.js:714 templates/js/translated/order.js:1313
+#: templates/js/translated/part.js:933 templates/js/translated/part.js:960
#: templates/js/translated/table_filters.js:312
msgid "Received"
msgstr ""
@@ -3320,9 +3348,9 @@ msgstr ""
msgid "Number of items received"
msgstr ""
-#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:645
+#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:697
#: stock/serializers.py:170 stock/templates/stock/item_base.html:338
-#: templates/js/translated/stock.js:1919
+#: templates/js/translated/stock.js:1875
msgid "Purchase Price"
msgstr ""
@@ -3456,11 +3484,11 @@ msgstr ""
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:273 templates/js/translated/order.js:514
+#: order/serializers.py:273 templates/js/translated/order.js:574
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:281 templates/js/translated/order.js:525
+#: order/serializers.py:281 templates/js/translated/order.js:585
msgid "Enter serial numbers for incoming stock items"
msgstr ""
@@ -3578,7 +3606,7 @@ msgstr ""
#: order/templates/order/order_base.html:94
#: order/templates/order/sales_order_base.html:89
-#: templates/js/translated/stock.js:2459
+#: templates/js/translated/stock.js:2415
msgid "Order Status"
msgstr ""
@@ -3650,10 +3678,10 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/bom.js:76 templates/js/translated/build.js:380
-#: templates/js/translated/build.js:528 templates/js/translated/build.js:1547
-#: templates/js/translated/order.js:602 templates/js/translated/order.js:1605
-#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769
+#: templates/js/translated/bom.js:76 templates/js/translated/build.js:381
+#: templates/js/translated/build.js:529 templates/js/translated/build.js:1558
+#: templates/js/translated/order.js:662 templates/js/translated/order.js:1693
+#: templates/js/translated/stock.js:557 templates/js/translated/stock.js:725
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr ""
@@ -3717,8 +3745,8 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:940 templates/js/translated/order.js:1403
-#: templates/js/translated/order.js:1533
+#: templates/js/translated/order.js:1000 templates/js/translated/order.js:1491
+#: templates/js/translated/order.js:1621
msgid "Items"
msgstr ""
@@ -3752,9 +3780,9 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:27
-#: order/templates/order/purchase_order_detail.html:182
+#: order/templates/order/purchase_order_detail.html:166
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:245
+#: order/templates/order/sales_order_detail.html:233
msgid "Add Line Item"
msgstr ""
@@ -3794,7 +3822,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:122
-#: templates/js/translated/order.js:1361
+#: templates/js/translated/order.js:1449
msgid "Customer Reference"
msgstr ""
@@ -3827,7 +3855,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:48
-#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1465
+#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1466
msgid "Actions"
msgstr ""
@@ -3902,31 +3930,31 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:499
+#: part/api.py:502
msgid "Valid"
msgstr ""
-#: part/api.py:500
+#: part/api.py:503
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:505
+#: part/api.py:508
msgid "This option must be selected"
msgstr ""
-#: part/api.py:847
+#: part/api.py:866
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:851
+#: part/api.py:870
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:866
+#: part/api.py:885
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:897 part/api.py:901 part/api.py:916 part/api.py:920
+#: part/api.py:916 part/api.py:920 part/api.py:935 part/api.py:939
msgid "This field is required"
msgstr ""
@@ -3944,7 +3972,7 @@ msgid "Available Stock"
msgstr ""
#: part/bom.py:128 part/templates/part/part_base.html:203
-#: templates/js/translated/part.js:1323
+#: templates/js/translated/part.js:1324
msgid "On Order"
msgstr ""
@@ -3976,7 +4004,7 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:97 part/models.py:2571 part/templates/part/category.html:15
+#: part/models.py:97 part/models.py:2585 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -3993,7 +4021,7 @@ msgstr ""
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:37
-#: templates/js/translated/part.js:1685 templates/navbar.html:21
+#: templates/js/translated/part.js:1686 templates/navbar.html:21
#: templates/stats.html:92 templates/stats.html:101 users/models.py:41
msgid "Parts"
msgstr ""
@@ -4023,7 +4051,7 @@ msgstr ""
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:803 part/models.py:2624
+#: part/models.py:803 part/models.py:2638
msgid "Part name"
msgstr ""
@@ -4056,11 +4084,11 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:841 part/models.py:2321 part/models.py:2570
+#: part/models.py:841 part/models.py:2335 part/models.py:2584
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:223
-#: templates/js/translated/part.js:1290
+#: templates/js/translated/part.js:1291
msgid "Category"
msgstr ""
@@ -4069,8 +4097,8 @@ msgid "Part category"
msgstr ""
#: part/models.py:847 part/templates/part/part_base.html:274
-#: templates/js/translated/part.js:618 templates/js/translated/part.js:1243
-#: templates/js/translated/stock.js:1683
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:1244
+#: templates/js/translated/stock.js:1639
msgid "IPN"
msgstr ""
@@ -4083,7 +4111,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:855 part/templates/part/part_base.html:281
-#: report/models.py:200 templates/js/translated/part.js:622
+#: report/models.py:200 templates/js/translated/part.js:623
msgid "Revision"
msgstr ""
@@ -4175,301 +4203,309 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2371
+#: part/models.py:2385
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2388
+#: part/models.py:2402
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2408 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:1311
+#: part/models.py:2422 templates/js/translated/part.js:1737
+#: templates/js/translated/stock.js:1267
msgid "Test Name"
msgstr ""
-#: part/models.py:2409
+#: part/models.py:2423
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2414
+#: part/models.py:2428
msgid "Test Description"
msgstr ""
-#: part/models.py:2415
+#: part/models.py:2429
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2420 templates/js/translated/part.js:1745
+#: part/models.py:2434 templates/js/translated/part.js:1746
#: templates/js/translated/table_filters.js:276
msgid "Required"
msgstr ""
-#: part/models.py:2421
+#: part/models.py:2435
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2426 templates/js/translated/part.js:1753
+#: part/models.py:2440 templates/js/translated/part.js:1754
msgid "Requires Value"
msgstr ""
-#: part/models.py:2427
+#: part/models.py:2441
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2432 templates/js/translated/part.js:1760
+#: part/models.py:2446 templates/js/translated/part.js:1761
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2433
+#: part/models.py:2447
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2444
+#: part/models.py:2458
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2480
+#: part/models.py:2494
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2488
+#: part/models.py:2502
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2495
+#: part/models.py:2509
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2525
+#: part/models.py:2539
msgid "Parent Part"
msgstr ""
-#: part/models.py:2527 part/models.py:2576 part/models.py:2577
+#: part/models.py:2541 part/models.py:2590 part/models.py:2591
#: templates/InvenTree/settings/settings.html:218
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2529
+#: part/models.py:2543
msgid "Data"
msgstr ""
-#: part/models.py:2529
+#: part/models.py:2543
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2581 templates/InvenTree/settings/settings.html:227
+#: part/models.py:2595 templates/InvenTree/settings/settings.html:227
msgid "Default Value"
msgstr ""
-#: part/models.py:2582
+#: part/models.py:2596
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2616
+#: part/models.py:2630
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2619 templates/js/translated/model_renderers.js:182
+#: part/models.py:2633 templates/js/translated/model_renderers.js:182
msgid "Part ID"
msgstr ""
-#: part/models.py:2620
+#: part/models.py:2634
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2623
+#: part/models.py:2637
msgid "Part Name"
msgstr ""
-#: part/models.py:2627
+#: part/models.py:2641
msgid "Part IPN"
msgstr ""
-#: part/models.py:2628
+#: part/models.py:2642
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2645
msgid "Level"
msgstr ""
-#: part/models.py:2632
+#: part/models.py:2646
msgid "BOM level"
msgstr ""
-#: part/models.py:2692
+#: part/models.py:2707
msgid "Select parent part"
msgstr ""
-#: part/models.py:2700
+#: part/models.py:2715
msgid "Sub part"
msgstr ""
-#: part/models.py:2701
+#: part/models.py:2716
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2707
+#: part/models.py:2722
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2709 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:791 templates/js/translated/bom.js:865
+#: part/models.py:2724 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2709
+#: part/models.py:2724
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2712 part/templates/part/upload_bom.html:55
+#: part/models.py:2727 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2713
+#: part/models.py:2728
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2716
+#: part/models.py:2731
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2719
+#: part/models.py:2734
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2721
+#: part/models.py:2736
msgid "Checksum"
msgstr ""
-#: part/models.py:2721
+#: part/models.py:2736
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2725 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:882
+#: part/models.py:2740 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:880
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2726
+#: part/models.py:2741
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2731 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:874
+#: part/models.py:2746 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:872
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2732
+#: part/models.py:2747
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2817 stock/models.py:394
+#: part/models.py:2832 stock/models.py:446
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2826 part/models.py:2828
+#: part/models.py:2841 part/models.py:2843
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2957
+#: part/models.py:2972
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2979
+#: part/models.py:2994
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2991
+#: part/models.py:3006
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2999
+#: part/models.py:3014
msgid "Substitute part"
msgstr ""
-#: part/models.py:3010
+#: part/models.py:3025
msgid "Part 1"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3029
msgid "Part 2"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3029
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3046
+#: part/models.py:3061
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
-#: part/serializers.py:667
+#: part/serializers.py:670
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:678
+#: part/serializers.py:681
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:679
+#: part/serializers.py:682
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:684
+#: part/serializers.py:687
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:685
+#: part/serializers.py:688
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:690
+#: part/serializers.py:693
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:691
+#: part/serializers.py:694
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:699
+msgid "Copy Substitute Parts"
+msgstr ""
+
+#: part/serializers.py:700
+msgid "Copy substitute parts when duplicate BOM items"
+msgstr ""
+
+#: part/serializers.py:744
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:735
+#: part/serializers.py:745
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:762
+#: part/serializers.py:772
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:805
+#: part/serializers.py:815
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:808
+#: part/serializers.py:818
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:811
+#: part/serializers.py:821
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:820
+#: part/serializers.py:830
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:828
+#: part/serializers.py:838
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:847
+#: part/serializers.py:857
msgid "At least one BOM item is required"
msgstr ""
@@ -4496,7 +4532,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:279
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:274
msgid "BOM actions"
msgstr ""
@@ -4548,7 +4584,7 @@ msgstr ""
msgid "Top level part category"
msgstr ""
-#: part/templates/part/category.html:114 part/templates/part/category.html:205
+#: part/templates/part/category.html:114 part/templates/part/category.html:202
#: part/templates/part/category_sidebar.html:7
msgid "Subcategories"
msgstr ""
@@ -4557,55 +4593,51 @@ msgstr ""
msgid "Parts (Including subcategories)"
msgstr ""
-#: part/templates/part/category.html:156
-msgid "Export Part Data"
-msgstr ""
-
-#: part/templates/part/category.html:157 part/templates/part/category.html:181
-msgid "Export"
-msgstr ""
-
-#: part/templates/part/category.html:160
+#: part/templates/part/category.html:157
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:161 templates/js/translated/bom.js:365
+#: part/templates/part/category.html:158 templates/js/translated/bom.js:365
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:175
+#: part/templates/part/category.html:172
msgid "Set category"
msgstr ""
-#: part/templates/part/category.html:175
+#: part/templates/part/category.html:172
msgid "Set Category"
msgstr ""
-#: part/templates/part/category.html:179
+#: part/templates/part/category.html:176
msgid "Print Labels"
msgstr ""
-#: part/templates/part/category.html:181
+#: part/templates/part/category.html:178
+msgid "Export"
+msgstr ""
+
+#: part/templates/part/category.html:178
msgid "Export Data"
msgstr ""
-#: part/templates/part/category.html:195
+#: part/templates/part/category.html:192
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:288
+#: part/templates/part/category.html:285
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:315
+#: part/templates/part/category.html:305
msgid "Create Part"
msgstr ""
-#: part/templates/part/category.html:318
+#: part/templates/part/category.html:308
msgid "Create another part after this one"
msgstr ""
-#: part/templates/part/category.html:319
+#: part/templates/part/category.html:309
msgid "Part created successfully"
msgstr ""
@@ -4676,155 +4708,150 @@ msgstr ""
msgid "Part Stock"
msgstr ""
-#: part/templates/part/detail.html:33
-#, python-format
-msgid "Showing stock for all variants of %(full_name)s"
-msgstr ""
-
-#: part/templates/part/detail.html:43
+#: part/templates/part/detail.html:38
msgid "Part Stock Allocations"
msgstr ""
-#: part/templates/part/detail.html:60
+#: part/templates/part/detail.html:55
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:65
+#: part/templates/part/detail.html:60
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:122
+#: part/templates/part/detail.html:117
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:168
+#: part/templates/part/detail.html:163
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:172
+#: part/templates/part/detail.html:167
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:173
+#: part/templates/part/detail.html:168
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:200
+#: part/templates/part/detail.html:195
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:237 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:52
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:241 part/templates/part/detail.html:242
+#: part/templates/part/detail.html:236 part/templates/part/detail.html:237
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:262 part/templates/part/part_sidebar.html:18
+#: part/templates/part/detail.html:257 part/templates/part/part_sidebar.html:18
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:267
+#: part/templates/part/detail.html:262
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:271 templates/js/translated/bom.js:283
+#: part/templates/part/detail.html:266 templates/js/translated/bom.js:283
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:268
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:283
+#: part/templates/part/detail.html:278
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:285 templates/js/translated/part.js:272
+#: part/templates/part/detail.html:279 templates/js/translated/part.js:272
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:287
+#: part/templates/part/detail.html:280
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:285
msgid "New BOM Item"
msgstr ""
-#: part/templates/part/detail.html:293
+#: part/templates/part/detail.html:286
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:306
+#: part/templates/part/detail.html:299
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:323
+#: part/templates/part/detail.html:316
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:348
+#: part/templates/part/detail.html:341
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:363
+#: part/templates/part/detail.html:356
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:391
+#: part/templates/part/detail.html:384
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:407
+#: part/templates/part/detail.html:400
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:589
+#: part/templates/part/detail.html:582
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:590
+#: part/templates/part/detail.html:583
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:639
+#: part/templates/part/detail.html:632
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:696
+#: part/templates/part/detail.html:689
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:704
+#: part/templates/part/detail.html:697
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:801
+#: part/templates/part/detail.html:794
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:858
+#: part/templates/part/detail.html:844
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:971
+#: part/templates/part/detail.html:957
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:983
+#: part/templates/part/detail.html:969
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:995
+#: part/templates/part/detail.html:981
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1084
+#: part/templates/part/detail.html:1070
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4969,7 +4996,7 @@ msgstr ""
#: templates/js/translated/company.js:508
#: templates/js/translated/company.js:765
#: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:533 templates/js/translated/part.js:610
+#: templates/js/translated/part.js:534 templates/js/translated/part.js:611
msgid "Inactive"
msgstr ""
@@ -4983,7 +5010,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2356
+#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2444
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5000,12 +5027,12 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:903
+#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:901
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1154
-#: templates/js/translated/part.js:1327
+#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1155
+#: templates/js/translated/part.js:1328
msgid "Building"
msgstr ""
@@ -5057,7 +5084,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:857
+#: templates/js/translated/bom.js:855
msgid "No supplier pricing available"
msgstr ""
@@ -5177,7 +5204,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:851
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849
msgid "Supplier Cost"
msgstr ""
@@ -5199,7 +5226,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1390
+#: part/templates/part/prices.html:215 part/views.py:1325
msgid "Add Internal Price Break"
msgstr ""
@@ -5219,9 +5246,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813
-#: templates/js/translated/part.js:497 templates/js/translated/part.js:1144
-#: templates/js/translated/part.js:1331
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811
+#: templates/js/translated/part.js:498 templates/js/translated/part.js:1145
+#: templates/js/translated/part.js:1332
msgid "No Stock"
msgstr ""
@@ -5275,100 +5302,100 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:172
+#: part/templatetags/inventree_extras.py:174
msgid "Unknown database"
msgstr ""
-#: part/views.py:90
+#: part/views.py:88
msgid "Set Part Category"
msgstr ""
-#: part/views.py:140
+#: part/views.py:138
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:212
+#: part/views.py:210
msgid "Match References"
msgstr ""
-#: part/views.py:509
+#: part/views.py:507
msgid "None"
msgstr ""
-#: part/views.py:568
+#: part/views.py:566
msgid "Part QR Code"
msgstr ""
-#: part/views.py:670
+#: part/views.py:668
msgid "Select Part Image"
msgstr ""
-#: part/views.py:696
+#: part/views.py:694
msgid "Updated part image"
msgstr ""
-#: part/views.py:699
+#: part/views.py:697
msgid "Part image not found"
msgstr ""
-#: part/views.py:850
+#: part/views.py:785
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:857
+#: part/views.py:792
msgid "Part was deleted"
msgstr ""
-#: part/views.py:866
+#: part/views.py:801
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1015
+#: part/views.py:950
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1025
+#: part/views.py:960
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1032
+#: part/views.py:967
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1091 templates/js/translated/part.js:315
+#: part/views.py:1026 templates/js/translated/part.js:315
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1129
+#: part/views.py:1064
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1135
+#: part/views.py:1070
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1144
+#: part/views.py:1079
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1245
+#: part/views.py:1180
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1301
+#: part/views.py:1236
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1323
+#: part/views.py:1258
msgid "Added new price break"
msgstr ""
-#: part/views.py:1399
+#: part/views.py:1334
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1407
+#: part/views.py:1342
msgid "Delete Internal Price Break"
msgstr ""
@@ -5574,12 +5601,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:556 stock/templates/stock/item_base.html:151
-#: templates/js/translated/build.js:373 templates/js/translated/build.js:521
-#: templates/js/translated/build.js:919 templates/js/translated/build.js:1295
+#: stock/models.py:608 stock/templates/stock/item_base.html:151
+#: templates/js/translated/build.js:374 templates/js/translated/build.js:522
+#: templates/js/translated/build.js:920 templates/js/translated/build.js:1296
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:99 templates/js/translated/order.js:2062
-#: templates/js/translated/order.js:2151 templates/js/translated/stock.js:423
+#: templates/js/translated/order.js:99 templates/js/translated/order.js:2150
+#: templates/js/translated/order.js:2239 templates/js/translated/stock.js:422
msgid "Serial Number"
msgstr ""
@@ -5588,19 +5615,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:2052
+#: stock/models.py:2104
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:2058
+#: stock/models.py:2110
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:50
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:924 templates/js/translated/stock.js:2657
+#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2613
msgid "Date"
msgstr ""
@@ -5618,26 +5645,26 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756
-#: templates/js/translated/stock.js:2910
+#: templates/js/translated/stock.js:542 templates/js/translated/stock.js:712
+#: templates/js/translated/stock.js:2866
msgid "Serial"
msgstr ""
-#: stock/api.py:501
+#: stock/api.py:503
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:508
+#: stock/api.py:510
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:533
+#: stock/api.py:535
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/forms.py:74 stock/forms.py:198 stock/models.py:613
+#: stock/forms.py:74 stock/forms.py:198 stock/models.py:665
#: stock/templates/stock/item_base.html:188
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1791
msgid "Expiry Date"
msgstr ""
@@ -5677,228 +5704,228 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:62 stock/models.py:650
+#: stock/models.py:62 stock/models.py:702
#: stock/templates/stock/item_base.html:402
msgid "Owner"
msgstr ""
-#: stock/models.py:63 stock/models.py:651
+#: stock/models.py:63 stock/models.py:703
msgid "Select Owner"
msgstr ""
-#: stock/models.py:375
+#: stock/models.py:427
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:463
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:421 stock/models.py:430
+#: stock/models.py:473 stock/models.py:482
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:422
+#: stock/models.py:474
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:444
+#: stock/models.py:496
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:450
+#: stock/models.py:502
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:457
+#: stock/models.py:509
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:500
+#: stock/models.py:552
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:509
+#: stock/models.py:561
msgid "Base part"
msgstr ""
-#: stock/models.py:517
+#: stock/models.py:569
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:523 stock/templates/stock/location.html:16
+#: stock/models.py:575 stock/templates/stock/location.html:16
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:526
+#: stock/models.py:578
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:585
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:539 stock/templates/stock/item_base.html:277
+#: stock/models.py:591 stock/templates/stock/item_base.html:277
msgid "Installed In"
msgstr ""
-#: stock/models.py:542
+#: stock/models.py:594
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:558
+#: stock/models.py:610
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:572
+#: stock/models.py:624
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:576
+#: stock/models.py:628
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:585
+#: stock/models.py:637
msgid "Source Build"
msgstr ""
-#: stock/models.py:587
+#: stock/models.py:639
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:598
+#: stock/models.py:650
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:601
+#: stock/models.py:653
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:607
+#: stock/models.py:659
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:614
+#: stock/models.py:666
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:627
+#: stock/models.py:679
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:627
+#: stock/models.py:679
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:637 stock/templates/stock/item.html:121
+#: stock/models.py:689 stock/templates/stock/item.html:121
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:646
+#: stock/models.py:698
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1171
+#: stock/models.py:1223
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1177
+#: stock/models.py:1229
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1183
+#: stock/models.py:1235
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1186
+#: stock/models.py:1238
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1189
+#: stock/models.py:1241
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1196
+#: stock/models.py:1248
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1267
+#: stock/models.py:1319
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1270
+#: stock/models.py:1322
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1273
+#: stock/models.py:1325
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1276
+#: stock/models.py:1328
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1279
+#: stock/models.py:1331
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1282
+#: stock/models.py:1334
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1289 stock/serializers.py:832
+#: stock/models.py:1341 stock/serializers.py:832
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1293
+#: stock/models.py:1345
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1297
+#: stock/models.py:1349
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1301
+#: stock/models.py:1353
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1473
+#: stock/models.py:1525
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1972
+#: stock/models.py:2024
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2029
+#: stock/models.py:2081
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2035
+#: stock/models.py:2087
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2053
+#: stock/models.py:2105
msgid "Test name"
msgstr ""
-#: stock/models.py:2059
+#: stock/models.py:2111
msgid "Test result"
msgstr ""
-#: stock/models.py:2065
+#: stock/models.py:2117
msgid "Test output value"
msgstr ""
-#: stock/models.py:2072
+#: stock/models.py:2124
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2078
+#: stock/models.py:2130
msgid "Test notes"
msgstr ""
@@ -5935,7 +5962,7 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:363 stock/views.py:1127
+#: stock/serializers.py:363 stock/views.py:1009
msgid "Serial numbers already exist"
msgstr ""
@@ -6052,11 +6079,11 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:147 templates/js/translated/stock.js:3019
+#: stock/templates/stock/item.html:147 templates/js/translated/stock.js:2975
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1479
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1435
msgid "Add Test Result"
msgstr ""
@@ -6070,7 +6097,7 @@ msgstr ""
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:46 templates/stock_table.html:24
+#: stock/templates/stock/item_base.html:46 templates/stock_table.html:21
msgid "Scan to Location"
msgstr ""
@@ -6083,15 +6110,15 @@ msgid "Stock adjustment actions"
msgstr ""
#: stock/templates/stock/item_base.html:69
-#: stock/templates/stock/location.html:52 templates/stock_table.html:50
+#: stock/templates/stock/location.html:52 templates/stock_table.html:47
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48
+#: stock/templates/stock/item_base.html:72 templates/stock_table.html:45
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49
+#: stock/templates/stock/item_base.html:75 templates/stock_table.html:46
msgid "Remove stock"
msgstr ""
@@ -6100,11 +6127,11 @@ msgid "Serialize stock"
msgstr ""
#: stock/templates/stock/item_base.html:82
-#: stock/templates/stock/location.html:58 templates/stock_table.html:51
+#: stock/templates/stock/location.html:58 templates/stock_table.html:48
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85 templates/stock_table.html:54
+#: stock/templates/stock/item_base.html:85 templates/stock_table.html:51
msgid "Assign to customer"
msgstr ""
@@ -6181,7 +6208,7 @@ msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:201
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1807
msgid "Last Updated"
msgstr ""
@@ -6218,7 +6245,7 @@ msgid "This stock item is serialized - it has a unique serial number and the qua
msgstr ""
#: stock/templates/stock/item_base.html:296
-#: templates/js/translated/build.js:1317
+#: templates/js/translated/build.js:1318
msgid "No location set"
msgstr ""
@@ -6320,11 +6347,11 @@ msgstr ""
msgid "Stock Locations"
msgstr ""
-#: stock/templates/stock/location.html:185 templates/stock_table.html:30
+#: stock/templates/stock/location.html:185 templates/stock_table.html:27
msgid "Printing Actions"
msgstr ""
-#: stock/templates/stock/location.html:189 templates/stock_table.html:34
+#: stock/templates/stock/location.html:189 templates/stock_table.html:31
msgid "Print labels"
msgstr ""
@@ -6348,7 +6375,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:749
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:631
msgid "Convert Stock Item"
msgstr ""
@@ -6369,95 +6396,95 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181 templates/js/translated/stock.js:139
+#: stock/views.py:152 templates/js/translated/stock.js:138
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:728 stock/views.py:854 stock/views.py:1136
+#: stock/views.py:259 stock/views.py:610 stock/views.py:736 stock/views.py:1018
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:274
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:293
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:302
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:342
+#: stock/views.py:313
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:353
+#: stock/views.py:324
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:370
+#: stock/views.py:341
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:371
+#: stock/views.py:342
msgid "Check the confirmation box"
msgstr ""
-#: stock/views.py:475
+#: stock/views.py:357
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:500
+#: stock/views.py:382
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:597 templates/js/translated/stock.js:1074
+#: stock/views.py:479 templates/js/translated/stock.js:1030
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:608
+#: stock/views.py:490
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:630 templates/js/translated/stock.js:332
+#: stock/views.py:512 templates/js/translated/stock.js:331
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:780
+#: stock/views.py:662
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:881
+#: stock/views.py:763
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1023 templates/js/translated/stock.js:312
+#: stock/views.py:905 templates/js/translated/stock.js:311
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1105
+#: stock/views.py:987
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1205
+#: stock/views.py:1087
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1218
+#: stock/views.py:1100
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1229
+#: stock/views.py:1111
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1236
+#: stock/views.py:1118
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1245
+#: stock/views.py:1127
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -7381,14 +7408,14 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1335
+#: templates/js/translated/bom.js:1340
msgid "Required Quantity"
msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:804 templates/js/translated/build.js:1411
-#: templates/js/translated/build.js:2057
+#: templates/js/translated/bom.js:802 templates/js/translated/build.js:1412
+#: templates/js/translated/build.js:2110
#: templates/js/translated/table_filters.js:178
msgid "Available"
msgstr ""
@@ -7580,7 +7607,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:982
msgid "Remove stock item"
msgstr ""
@@ -7635,12 +7662,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286
-#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518
+#: templates/js/translated/order.js:429 templates/js/translated/tables.js:53
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519
+#: templates/js/translated/order.js:430
msgid "Select file format"
msgstr ""
@@ -7716,275 +7743,307 @@ msgstr ""
msgid "Edit BOM Item Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:741
+#: templates/js/translated/bom.js:739
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:745 templates/js/translated/build.js:1393
+#: templates/js/translated/bom.js:743 templates/js/translated/build.js:1394
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:750
+#: templates/js/translated/bom.js:748
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:822
+#: templates/js/translated/bom.js:820
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:837
+#: templates/js/translated/bom.js:835
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:844
+#: templates/js/translated/bom.js:842
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:893 templates/js/translated/bom.js:982
+#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:953
+#: templates/js/translated/bom.js:951
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:955
+#: templates/js/translated/bom.js:953
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:957
+#: templates/js/translated/bom.js:955
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138
+#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:961 templates/js/translated/bom.js:1121
+#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1060 templates/js/translated/build.js:1137
+#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1138
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1116
+#: templates/js/translated/bom.js:1121
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:1318 templates/js/translated/build.js:1377
+#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1378
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1340
+#: templates/js/translated/bom.js:1345
msgid "Inherited from parent BOM"
msgstr ""
-#: templates/js/translated/build.js:85
+#: templates/js/translated/build.js:86
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:119
+#: templates/js/translated/build.js:120
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:140
+#: templates/js/translated/build.js:141
msgid "Build order is ready to be completed"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:146
msgid "Build Order is incomplete"
msgstr ""
-#: templates/js/translated/build.js:173
+#: templates/js/translated/build.js:174
msgid "Complete Build Order"
msgstr ""
-#: templates/js/translated/build.js:214 templates/js/translated/stock.js:92
-#: templates/js/translated/stock.js:181
+#: templates/js/translated/build.js:215 templates/js/translated/stock.js:91
+#: templates/js/translated/stock.js:180
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:216 templates/js/translated/stock.js:94
-#: templates/js/translated/stock.js:183
+#: templates/js/translated/build.js:217 templates/js/translated/stock.js:93
+#: templates/js/translated/stock.js:182
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/build.js:225
+#: templates/js/translated/build.js:226
msgid "The Bill of Materials contains trackable parts"
msgstr ""
-#: templates/js/translated/build.js:226
+#: templates/js/translated/build.js:227
msgid "Build outputs must be generated individually"
msgstr ""
-#: templates/js/translated/build.js:234
+#: templates/js/translated/build.js:235
msgid "Trackable parts can have serial numbers specified"
msgstr ""
-#: templates/js/translated/build.js:235
+#: templates/js/translated/build.js:236
msgid "Enter serial numbers to generate multiple single build outputs"
msgstr ""
-#: templates/js/translated/build.js:242
+#: templates/js/translated/build.js:243
msgid "Create Build Output"
msgstr ""
-#: templates/js/translated/build.js:273
+#: templates/js/translated/build.js:274
msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:284
+#: templates/js/translated/build.js:285
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:293
+#: templates/js/translated/build.js:294
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:301
+#: templates/js/translated/build.js:302
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:324
+#: templates/js/translated/build.js:325
msgid "Are you sure you wish to unallocate stock items from this build?"
msgstr ""
-#: templates/js/translated/build.js:342
+#: templates/js/translated/build.js:343
msgid "Unallocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:360 templates/js/translated/build.js:508
+#: templates/js/translated/build.js:361 templates/js/translated/build.js:509
msgid "Select Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:361 templates/js/translated/build.js:509
+#: templates/js/translated/build.js:362 templates/js/translated/build.js:510
msgid "At least one build output must be selected"
msgstr ""
-#: templates/js/translated/build.js:415 templates/js/translated/build.js:563
+#: templates/js/translated/build.js:416 templates/js/translated/build.js:564
msgid "Output"
msgstr ""
-#: templates/js/translated/build.js:431
+#: templates/js/translated/build.js:432
msgid "Complete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:576
+#: templates/js/translated/build.js:577
msgid "Delete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:665
+#: templates/js/translated/build.js:666
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:703 templates/js/translated/order.js:1965
+#: templates/js/translated/build.js:704 templates/js/translated/order.js:2053
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:885
+#: templates/js/translated/build.js:886
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1334 templates/js/translated/build.js:2068
-#: templates/js/translated/order.js:2099
+#: templates/js/translated/build.js:1335 templates/js/translated/build.js:2121
+#: templates/js/translated/order.js:2187
msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1336 templates/js/translated/build.js:2069
-#: templates/js/translated/order.js:2100
+#: templates/js/translated/build.js:1337 templates/js/translated/build.js:2122
+#: templates/js/translated/order.js:2188
msgid "Delete stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1354
+#: templates/js/translated/build.js:1355
msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:1364
+#: templates/js/translated/build.js:1365
msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:1389
+#: templates/js/translated/build.js:1390
msgid "Substitute parts available"
msgstr ""
-#: templates/js/translated/build.js:1406
+#: templates/js/translated/build.js:1407
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1416 templates/js/translated/build.js:1656
-#: templates/js/translated/build.js:2064 templates/js/translated/order.js:2366
+#: templates/js/translated/build.js:1417 templates/js/translated/build.js:1667
+#: templates/js/translated/build.js:2117 templates/js/translated/order.js:2454
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1472 templates/js/translated/order.js:2446
+#: templates/js/translated/build.js:1473 templates/js/translated/order.js:2534
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:1476 templates/stock_table.html:53
+#: templates/js/translated/build.js:1477 templates/stock_table.html:50
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1479 templates/js/translated/order.js:2439
+#: templates/js/translated/build.js:1480 templates/js/translated/order.js:2527
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:1558 templates/js/translated/order.js:1616
-msgid "Specify stock allocation quantity"
-msgstr ""
-
-#: templates/js/translated/build.js:1629 templates/js/translated/label.js:134
-#: templates/js/translated/order.js:1667 templates/js/translated/report.js:225
+#: templates/js/translated/build.js:1519 templates/js/translated/label.js:134
+#: templates/js/translated/order.js:1755 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1630 templates/js/translated/order.js:1668
+#: templates/js/translated/build.js:1520 templates/js/translated/order.js:1756
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:1644 templates/js/translated/order.js:1682
+#: templates/js/translated/build.js:1569 templates/js/translated/order.js:1704
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:1640
+msgid "All Parts Allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:1641
+msgid "All selected parts have been fully allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:1655 templates/js/translated/order.js:1770
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1717
+#: templates/js/translated/build.js:1684 templates/js/translated/order.js:1805
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1674
+#: templates/js/translated/build.js:1685
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1730
+#: templates/js/translated/build.js:1696 templates/js/translated/order.js:1818
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1757 templates/js/translated/order.js:1807
+#: templates/js/translated/build.js:1768 templates/js/translated/order.js:1895
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1875
+#: templates/js/translated/build.js:1865
+msgid "Automatic Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1866
+msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
+msgstr ""
+
+#: templates/js/translated/build.js:1868
+msgid "If a location is specifed, stock will only be allocated from that location"
+msgstr ""
+
+#: templates/js/translated/build.js:1869
+msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
+msgstr ""
+
+#: templates/js/translated/build.js:1870
+msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
+msgstr ""
+
+#: templates/js/translated/build.js:1890
+msgid "Allocate Stock Items"
+msgstr ""
+
+#: templates/js/translated/build.js:1928
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1892 templates/js/translated/part.js:1235
-#: templates/js/translated/part.js:1646 templates/js/translated/stock.js:1643
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/build.js:1945 templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1647 templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:2567
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1912
+#: templates/js/translated/build.js:1965
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1976 templates/js/translated/stock.js:2823
+#: templates/js/translated/build.js:2029 templates/js/translated/stock.js:2779
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1988
+#: templates/js/translated/build.js:2041
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:2045
+#: templates/js/translated/build.js:2098
msgid "No parts allocated for"
msgstr ""
@@ -8049,34 +8108,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:517
-#: templates/js/translated/part.js:602
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:518
+#: templates/js/translated/part.js:603
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:521
-#: templates/js/translated/part.js:606
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:522
+#: templates/js/translated/part.js:607
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:696
+#: templates/js/translated/company.js:631 templates/js/translated/part.js:697
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:738
+#: templates/js/translated/company.js:668 templates/js/translated/part.js:739
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:739
+#: templates/js/translated/company.js:669 templates/js/translated/part.js:740
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:756
+#: templates/js/translated/company.js:688 templates/js/translated/part.js:757
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:768
+#: templates/js/translated/company.js:699 templates/js/translated/part.js:769
msgid "Delete Parameter"
msgstr ""
@@ -8085,12 +8144,12 @@ msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:429
+#: templates/js/translated/filters.js:441
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:430
+#: templates/js/translated/filters.js:442
msgid "false"
msgstr ""
@@ -8098,19 +8157,23 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:286
+#: templates/js/translated/filters.js:288
+msgid "Download data"
+msgstr ""
+
+#: templates/js/translated/filters.js:291
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:290
+#: templates/js/translated/filters.js:295
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:293
+#: templates/js/translated/filters.js:298
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:338
+#: templates/js/translated/filters.js:350
msgid "Create filter"
msgstr ""
@@ -8181,7 +8244,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1050
+#: templates/js/translated/stock.js:1006
msgid "Select Stock Items"
msgstr ""
@@ -8354,206 +8417,214 @@ msgstr ""
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:366
+#: templates/js/translated/order.js:426
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:460
+#: templates/js/translated/order.js:520
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:461
+#: templates/js/translated/order.js:521
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:481 templates/js/translated/order.js:580
+#: templates/js/translated/order.js:541 templates/js/translated/order.js:640
msgid "Add batch code"
msgstr ""
-#: templates/js/translated/order.js:487 templates/js/translated/order.js:591
+#: templates/js/translated/order.js:547 templates/js/translated/order.js:651
msgid "Add serial numbers"
msgstr ""
-#: templates/js/translated/order.js:499
+#: templates/js/translated/order.js:559
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:563 templates/js/translated/stock.js:2263
+#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2219
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:652
+#: templates/js/translated/order.js:712
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:653
+#: templates/js/translated/order.js:713
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:655
+#: templates/js/translated/order.js:715
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/order.js:674
+#: templates/js/translated/order.js:734
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:675
+#: templates/js/translated/order.js:735
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:865 templates/js/translated/part.js:809
+#: templates/js/translated/order.js:925 templates/js/translated/part.js:810
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:890 templates/js/translated/order.js:1338
+#: templates/js/translated/order.js:950 templates/js/translated/order.js:1426
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:1018 templates/js/translated/order.js:2496
+#: templates/js/translated/order.js:1074 templates/js/translated/order.js:2585
+msgid "Duplicate Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:1104 templates/js/translated/order.js:2607
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1030 templates/js/translated/order.js:2507
+#: templates/js/translated/order.js:1117 templates/js/translated/order.js:2618
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:1073
+#: templates/js/translated/order.js:1160
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:1100 templates/js/translated/order.js:2255
+#: templates/js/translated/order.js:1187 templates/js/translated/order.js:2343
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:1154 templates/js/translated/order.js:2280
-#: templates/js/translated/part.js:1863 templates/js/translated/part.js:2074
+#: templates/js/translated/order.js:1241 templates/js/translated/order.js:2368
+#: templates/js/translated/part.js:1864 templates/js/translated/part.js:2075
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1169 templates/js/translated/order.js:2296
+#: templates/js/translated/order.js:1256 templates/js/translated/order.js:2384
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:1210 templates/js/translated/order.js:2338
-#: templates/js/translated/part.js:918
+#: templates/js/translated/order.js:1297 templates/js/translated/order.js:2426
+#: templates/js/translated/part.js:919
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:1269 templates/js/translated/part.js:964
+#: templates/js/translated/order.js:1356 templates/js/translated/part.js:965
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1273 templates/js/translated/order.js:2452
+#: templates/js/translated/order.js:1360 templates/js/translated/order.js:2540
+msgid "Duplicate line item"
+msgstr ""
+
+#: templates/js/translated/order.js:1361 templates/js/translated/order.js:2541
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:1274 templates/js/translated/order.js:2456
+#: templates/js/translated/order.js:1362 templates/js/translated/order.js:2545
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1314
+#: templates/js/translated/order.js:1402
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1352
+#: templates/js/translated/order.js:1440
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1439
+#: templates/js/translated/order.js:1527
msgid "Edit shipment"
msgstr ""
-#: templates/js/translated/order.js:1442
+#: templates/js/translated/order.js:1530
msgid "Complete shipment"
msgstr ""
-#: templates/js/translated/order.js:1447
+#: templates/js/translated/order.js:1535
msgid "Delete shipment"
msgstr ""
-#: templates/js/translated/order.js:1467
+#: templates/js/translated/order.js:1555
msgid "Edit Shipment"
msgstr ""
-#: templates/js/translated/order.js:1484
+#: templates/js/translated/order.js:1572
msgid "Delete Shipment"
msgstr ""
-#: templates/js/translated/order.js:1518
+#: templates/js/translated/order.js:1606
msgid "No matching shipments found"
msgstr ""
-#: templates/js/translated/order.js:1528
+#: templates/js/translated/order.js:1616
msgid "Shipment Reference"
msgstr ""
-#: templates/js/translated/order.js:1552
+#: templates/js/translated/order.js:1640
msgid "Not shipped"
msgstr ""
-#: templates/js/translated/order.js:1558
+#: templates/js/translated/order.js:1646
msgid "Tracking"
msgstr ""
-#: templates/js/translated/order.js:1718
+#: templates/js/translated/order.js:1806
msgid "Allocate Stock Items to Sales Order"
msgstr ""
-#: templates/js/translated/order.js:1926
+#: templates/js/translated/order.js:2014
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:2015
+#: templates/js/translated/order.js:2103
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:2032
+#: templates/js/translated/order.js:2120
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:2033
+#: templates/js/translated/order.js:2121
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:2076 templates/js/translated/order.js:2165
-#: templates/js/translated/stock.js:1559
+#: templates/js/translated/order.js:2164 templates/js/translated/order.js:2253
+#: templates/js/translated/stock.js:1515
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/order.js:2084 templates/js/translated/order.js:2174
+#: templates/js/translated/order.js:2172 templates/js/translated/order.js:2262
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:2436
+#: templates/js/translated/order.js:2524
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:2442
+#: templates/js/translated/order.js:2530
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:2449 templates/js/translated/order.js:2616
+#: templates/js/translated/order.js:2537 templates/js/translated/order.js:2727
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:2460
+#: templates/js/translated/order.js:2549
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:2463
+#: templates/js/translated/order.js:2552
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:2522
+#: templates/js/translated/order.js:2633
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:2624
+#: templates/js/translated/order.js:2735
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:2638
+#: templates/js/translated/order.js:2749
msgid "No matching line items"
msgstr ""
@@ -8677,117 +8748,117 @@ msgstr ""
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:481
+#: templates/js/translated/part.js:482
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:509 templates/js/translated/part.js:594
+#: templates/js/translated/part.js:510 templates/js/translated/part.js:595
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:513 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:514 templates/js/translated/part.js:599
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:525
+#: templates/js/translated/part.js:526
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:529
+#: templates/js/translated/part.js:530
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:644
+#: templates/js/translated/part.js:645
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1034
+#: templates/js/translated/part.js:1035
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1058
+#: templates/js/translated/part.js:1059
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1125 templates/js/translated/part.js:1385
+#: templates/js/translated/part.js:1126 templates/js/translated/part.js:1386
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1295
+#: templates/js/translated/part.js:1296
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1318
+#: templates/js/translated/part.js:1319
#: templates/js/translated/table_filters.js:425
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1409 templates/js/translated/part.js:1581
-#: templates/js/translated/stock.js:2572
+#: templates/js/translated/part.js:1410 templates/js/translated/part.js:1582
+#: templates/js/translated/stock.js:2528
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1425
+#: templates/js/translated/part.js:1426
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1600 templates/js/translated/stock.js:2591
+#: templates/js/translated/part.js:1601 templates/js/translated/stock.js:2547
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1664
+#: templates/js/translated/part.js:1665
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1678 templates/js/translated/stock.js:2635
+#: templates/js/translated/part.js:1679 templates/js/translated/stock.js:2591
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1722
+#: templates/js/translated/part.js:1723
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1773 templates/js/translated/stock.js:1270
+#: templates/js/translated/part.js:1774 templates/js/translated/stock.js:1226
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1774 templates/js/translated/stock.js:1271
-#: templates/js/translated/stock.js:1517
+#: templates/js/translated/part.js:1775 templates/js/translated/stock.js:1227
+#: templates/js/translated/stock.js:1473
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1780
+#: templates/js/translated/part.js:1781
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1802
+#: templates/js/translated/part.js:1803
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1816
+#: templates/js/translated/part.js:1817
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1841
+#: templates/js/translated/part.js:1842
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1896
+#: templates/js/translated/part.js:1897
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1897
+#: templates/js/translated/part.js:1898
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1998
+#: templates/js/translated/part.js:1999
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:2017
+#: templates/js/translated/part.js:2018
msgid "Single Price Difference"
msgstr ""
@@ -8861,368 +8932,356 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:102
+#: templates/js/translated/stock.js:101
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:111
+#: templates/js/translated/stock.js:110
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:154
+#: templates/js/translated/stock.js:153
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:194
+#: templates/js/translated/stock.js:193
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:233
+#: templates/js/translated/stock.js:232
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/stock.js:238
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:381
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:395
+#: templates/js/translated/stock.js:394
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:420
+#: templates/js/translated/stock.js:419
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425
+#: templates/js/translated/stock.js:423 templates/js/translated/stock.js:424
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:441
+#: templates/js/translated/stock.js:440
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:461
+#: templates/js/translated/stock.js:460
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:470
+#: templates/js/translated/stock.js:469
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:515
-msgid "Export Stock"
-msgstr ""
-
-#: templates/js/translated/stock.js:526
-msgid "Include Sublocations"
-msgstr ""
-
-#: templates/js/translated/stock.js:527
-msgid "Include stock items in sublocations"
-msgstr ""
-
-#: templates/js/translated/stock.js:636
+#: templates/js/translated/stock.js:592
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:637
+#: templates/js/translated/stock.js:593
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:714
+#: templates/js/translated/stock.js:670
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:715
+#: templates/js/translated/stock.js:671
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:717
+#: templates/js/translated/stock.js:673
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:718
+#: templates/js/translated/stock.js:674
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:804
+#: templates/js/translated/stock.js:760
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:805
+#: templates/js/translated/stock.js:761
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:900
+#: templates/js/translated/stock.js:856
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:901
+#: templates/js/translated/stock.js:857
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:907
+#: templates/js/translated/stock.js:863
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:908
+#: templates/js/translated/stock.js:864
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:912
+#: templates/js/translated/stock.js:868
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:913
+#: templates/js/translated/stock.js:869
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:917
+#: templates/js/translated/stock.js:873
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:918 users/models.py:213
+#: templates/js/translated/stock.js:874 users/models.py:213
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:922
+#: templates/js/translated/stock.js:878
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1011
+#: templates/js/translated/stock.js:967
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1011
+#: templates/js/translated/stock.js:967
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1051
+#: templates/js/translated/stock.js:1007
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1209
+#: templates/js/translated/stock.js:1165
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1211
+#: templates/js/translated/stock.js:1167
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1216
+#: templates/js/translated/stock.js:1172
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1263
+#: templates/js/translated/stock.js:1219
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1266
+#: templates/js/translated/stock.js:1222
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1292
+#: templates/js/translated/stock.js:1248
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1348
+#: templates/js/translated/stock.js:1304
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1500
+#: templates/js/translated/stock.js:1456
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1522
+#: templates/js/translated/stock.js:1478
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1551
+#: templates/js/translated/stock.js:1507
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1511
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1563
+#: templates/js/translated/stock.js:1519
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1569
+#: templates/js/translated/stock.js:1525
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1727
+#: templates/js/translated/stock.js:1683
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1732
+#: templates/js/translated/stock.js:1688
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1691
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1739
+#: templates/js/translated/stock.js:1695
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1741
+#: templates/js/translated/stock.js:1697
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1747
+#: templates/js/translated/stock.js:1703
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1749
+#: templates/js/translated/stock.js:1705
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1751
+#: templates/js/translated/stock.js:1707
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1756
+#: templates/js/translated/stock.js:1712
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1763
+#: templates/js/translated/stock.js:1719
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1765
+#: templates/js/translated/stock.js:1721
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1767
+#: templates/js/translated/stock.js:1723
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1771
+#: templates/js/translated/stock.js:1727
#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1821
+#: templates/js/translated/stock.js:1777
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1903
+#: templates/js/translated/stock.js:1859
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1941
+#: templates/js/translated/stock.js:1897
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1962 templates/js/translated/stock.js:2010
+#: templates/js/translated/stock.js:1918 templates/js/translated/stock.js:1966
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:2050
+#: templates/js/translated/stock.js:2006
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:2077
+#: templates/js/translated/stock.js:2033
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:2079
+#: templates/js/translated/stock.js:2035
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:2278
+#: templates/js/translated/stock.js:2234
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2292
+#: templates/js/translated/stock.js:2248
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2293
+#: templates/js/translated/stock.js:2249
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2472
+#: templates/js/translated/stock.js:2428
msgid "Allocated Quantity"
msgstr ""
-#: templates/js/translated/stock.js:2682
+#: templates/js/translated/stock.js:2638
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2707
+#: templates/js/translated/stock.js:2663
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2726
+#: templates/js/translated/stock.js:2682
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2745
+#: templates/js/translated/stock.js:2701
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2763
+#: templates/js/translated/stock.js:2719
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2786
+#: templates/js/translated/stock.js:2742
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2794
+#: templates/js/translated/stock.js:2750
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2835
+#: templates/js/translated/stock.js:2791
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2836
+#: templates/js/translated/stock.js:2792
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2887
+#: templates/js/translated/stock.js:2843
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2938
+#: templates/js/translated/stock.js:2894
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2974
+#: templates/js/translated/stock.js:2930
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2975
+#: templates/js/translated/stock.js:2931
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2977
+#: templates/js/translated/stock.js:2933
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2978
+#: templates/js/translated/stock.js:2934
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2979
+#: templates/js/translated/stock.js:2935
msgid "The Stock Item is serialized and does not belong to another item"
msgstr ""
-#: templates/js/translated/stock.js:2992
+#: templates/js/translated/stock.js:2948
msgid "Select part to install"
msgstr ""
@@ -9429,60 +9488,68 @@ msgstr ""
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:368
+#: templates/js/translated/tables.js:50
+msgid "Export Table Data"
+msgstr ""
+
+#: templates/js/translated/tables.js:54
+msgid "Select File Format"
+msgstr ""
+
+#: templates/js/translated/tables.js:433
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:371
+#: templates/js/translated/tables.js:436
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:376
+#: templates/js/translated/tables.js:441
msgid "Showing all rows"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:382 templates/search_form.html:6
+#: templates/js/translated/tables.js:447 templates/search_form.html:6
#: templates/search_form.html:7
msgid "Search"
msgstr ""
-#: templates/js/translated/tables.js:385
+#: templates/js/translated/tables.js:450
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:388
+#: templates/js/translated/tables.js:453
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:391
+#: templates/js/translated/tables.js:456
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:394
+#: templates/js/translated/tables.js:459
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:397
+#: templates/js/translated/tables.js:462
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:400
+#: templates/js/translated/tables.js:465
msgid "All"
msgstr ""
@@ -9586,63 +9653,59 @@ msgstr ""
msgid "Email settings not configured"
msgstr ""
-#: templates/stock_table.html:14
-msgid "Export Stock Information"
-msgstr ""
-
-#: templates/stock_table.html:20
+#: templates/stock_table.html:17
msgid "Barcode Actions"
msgstr ""
-#: templates/stock_table.html:36
+#: templates/stock_table.html:33
msgid "Print test reports"
msgstr ""
-#: templates/stock_table.html:43
+#: templates/stock_table.html:40
msgid "Stock Options"
msgstr ""
-#: templates/stock_table.html:48
+#: templates/stock_table.html:45
msgid "Add to selected stock items"
msgstr ""
-#: templates/stock_table.html:49
+#: templates/stock_table.html:46
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:50
+#: templates/stock_table.html:47
msgid "Stocktake selected stock items"
msgstr ""
-#: templates/stock_table.html:51
+#: templates/stock_table.html:48
msgid "Move selected stock items"
msgstr ""
-#: templates/stock_table.html:52
+#: templates/stock_table.html:49
msgid "Merge selected stock items"
msgstr ""
-#: templates/stock_table.html:52
+#: templates/stock_table.html:49
msgid "Merge stock"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:50
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:52
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:52
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:55
msgid "Delete selected items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:55
msgid "Delete stock"
msgstr ""
diff --git a/InvenTree/locale/tr/LC_MESSAGES/django.po b/InvenTree/locale/tr/LC_MESSAGES/django.po
index 9f133f9167..a6a49e1458 100644
--- a/InvenTree/locale/tr/LC_MESSAGES/django.po
+++ b/InvenTree/locale/tr/LC_MESSAGES/django.po
@@ -1,10 +1,10 @@
-#: templates/js/translated/order.js:2090
+#: templates/js/translated/order.js:2178
msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-03-01 13:34+0000\n"
-"PO-Revision-Date: 2022-03-01 14:09\n"
+"POT-Creation-Date: 2022-03-07 04:31+0000\n"
+"PO-Revision-Date: 2022-03-07 04:47\n"
"Last-Translator: \n"
"Language-Team: Turkish\n"
"Language: tr_TR\n"
@@ -86,7 +86,7 @@ msgid "Duplicate serial: {sn}"
msgstr ""
#: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435
-#: stock/views.py:1101
+#: stock/views.py:983
msgid "Invalid quantity provided"
msgstr "Geçersiz veri sağlandı"
@@ -114,100 +114,100 @@ msgstr "Seri numarası bulunamadı"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Benzersiz seri numaralarının sayısı ({s}) girilen miktarla eşleşmeli ({q})"
-#: InvenTree/models.py:176
+#: InvenTree/models.py:185
msgid "Missing file"
msgstr ""
-#: InvenTree/models.py:177
+#: InvenTree/models.py:186
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:188 stock/models.py:2071
+#: InvenTree/models.py:197 stock/models.py:2123
#: templates/js/translated/attachment.js:119
msgid "Attachment"
msgstr "Ek"
-#: InvenTree/models.py:189
+#: InvenTree/models.py:198
msgid "Select file to attach"
msgstr "Eklenecek dosyayı seç"
-#: InvenTree/models.py:195 company/models.py:131 company/models.py:348
+#: InvenTree/models.py:204 company/models.py:131 company/models.py:348
#: company/models.py:564 order/models.py:127 part/models.py:860
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1346
+#: templates/js/translated/company.js:829 templates/js/translated/part.js:1347
msgid "Link"
msgstr "Bağlantı"
-#: InvenTree/models.py:196 build/models.py:330 part/models.py:861
-#: stock/models.py:566
+#: InvenTree/models.py:205 build/models.py:332 part/models.py:861
+#: stock/models.py:618
msgid "Link to external URL"
msgstr "Harici URL'ye bağlantı"
-#: InvenTree/models.py:199 templates/js/translated/attachment.js:163
+#: InvenTree/models.py:208 templates/js/translated/attachment.js:163
msgid "Comment"
msgstr "Yorum"
-#: InvenTree/models.py:199
+#: InvenTree/models.py:208
msgid "File comment"
msgstr "Dosya yorumu"
-#: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1277
+#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1277
#: common/models.py:1278 common/models.py:1506 common/models.py:1507
-#: part/models.py:2303 part/models.py:2323
+#: part/models.py:2317 part/models.py:2337
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2817
+#: templates/js/translated/stock.js:2773
msgid "User"
msgstr "Kullanıcı"
-#: InvenTree/models.py:209
+#: InvenTree/models.py:218
msgid "upload date"
msgstr "yükleme tarihi"
-#: InvenTree/models.py:232
+#: InvenTree/models.py:241
msgid "Filename must not be empty"
msgstr ""
-#: InvenTree/models.py:255
+#: InvenTree/models.py:264
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:265
+#: InvenTree/models.py:274
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:268
+#: InvenTree/models.py:277
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:275
+#: InvenTree/models.py:284
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:282
+#: InvenTree/models.py:291
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:317
+#: InvenTree/models.py:326
msgid "Invalid choice"
msgstr "Geçersiz seçim"
-#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1492
+#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1492
#: company/models.py:415 label/models.py:112 part/models.py:804
-#: part/models.py:2487 plugin/models.py:40 report/models.py:181
+#: part/models.py:2501 plugin/models.py:40 report/models.py:181
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:48
#: templates/InvenTree/settings/plugin.html:125
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:319
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:567
-#: templates/js/translated/part.js:706 templates/js/translated/part.js:1653
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/company.js:641 templates/js/translated/part.js:568
+#: templates/js/translated/part.js:707 templates/js/translated/part.js:1654
+#: templates/js/translated/stock.js:2573
msgid "Name"
msgstr "Adı"
-#: InvenTree/models.py:340 build/models.py:207
+#: InvenTree/models.py:349 build/models.py:209
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
@@ -219,28 +219,28 @@ msgstr "Adı"
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:92
#: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:765
-#: templates/js/translated/build.js:1920 templates/js/translated/company.js:345
+#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763
+#: templates/js/translated/build.js:1973 templates/js/translated/company.js:345
#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:911
-#: templates/js/translated/order.js:1105 templates/js/translated/order.js:1366
-#: templates/js/translated/part.js:626 templates/js/translated/part.js:1021
-#: templates/js/translated/part.js:1106 templates/js/translated/part.js:1276
-#: templates/js/translated/part.js:1672 templates/js/translated/part.js:1741
-#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2446
-#: templates/js/translated/stock.js:2629 templates/js/translated/stock.js:2667
+#: templates/js/translated/company.js:840 templates/js/translated/order.js:971
+#: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454
+#: templates/js/translated/part.js:627 templates/js/translated/part.js:1022
+#: templates/js/translated/part.js:1107 templates/js/translated/part.js:1277
+#: templates/js/translated/part.js:1673 templates/js/translated/part.js:1742
+#: templates/js/translated/stock.js:1656 templates/js/translated/stock.js:2402
+#: templates/js/translated/stock.js:2585 templates/js/translated/stock.js:2623
msgid "Description"
msgstr "Açıklama"
-#: InvenTree/models.py:341
+#: InvenTree/models.py:350
msgid "Description (optional)"
msgstr "Açıklama (isteğe bağlı)"
-#: InvenTree/models.py:349
+#: InvenTree/models.py:358
msgid "parent"
msgstr "üst"
-#: InvenTree/serializers.py:65 part/models.py:2805
+#: InvenTree/serializers.py:65 part/models.py:2820
msgid "Must be a valid number"
msgstr "Geçerli bir numara olmalı"
@@ -294,87 +294,87 @@ msgstr ""
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:665
msgid "German"
msgstr "Almanca"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:666
msgid "Greek"
msgstr "Yunanca"
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:667
msgid "English"
msgstr "İngilizce"
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:668
msgid "Spanish"
msgstr "İspanyolca"
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:669
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:670
msgid "French"
msgstr "Fransızca"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:671
msgid "Hebrew"
msgstr "İbranice"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:672
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:673
msgid "Italian"
msgstr "İtalyanca"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:674
msgid "Japanese"
msgstr "Japonca"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:675
msgid "Korean"
msgstr "Korece"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:676
msgid "Dutch"
msgstr "Flemenkçe"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:677
msgid "Norwegian"
msgstr "Norveççe"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:678
msgid "Polish"
msgstr "Polonyaca"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:679
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:680
msgid "Russian"
msgstr "Rusça"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:681
msgid "Swedish"
msgstr "İsveççe"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:682
msgid "Thai"
msgstr "Tay dili"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:683
msgid "Turkish"
msgstr "Türkçe"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:684
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:685
msgid "Chinese"
msgstr "Çince"
@@ -421,7 +421,7 @@ msgid "Returned"
msgstr "İade"
#: InvenTree/status_codes.py:143 order/models.py:997
-#: templates/js/translated/order.js:2097 templates/js/translated/order.js:2394
+#: templates/js/translated/order.js:2185 templates/js/translated/order.js:2482
msgid "Shipped"
msgstr "Sevk edildi"
@@ -501,7 +501,7 @@ msgstr "Üst ögeden ayır"
msgid "Split child item"
msgstr "Alt ögeyi ayır"
-#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2204
+#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2160
msgid "Merged stock items"
msgstr ""
@@ -593,43 +593,43 @@ msgstr "Parola alanları eşleşmelidir"
msgid "System Information"
msgstr "Sistem Bilgisi"
-#: barcodes/api.py:54 barcodes/api.py:152
+#: barcodes/api.py:55 barcodes/api.py:156
msgid "Must provide barcode_data parameter"
msgstr "Barcode_data parametresini sağlamalıdır"
-#: barcodes/api.py:128
+#: barcodes/api.py:132
msgid "No match found for barcode data"
msgstr "Barkod verisi için eşleşme bulunamadı"
-#: barcodes/api.py:130
+#: barcodes/api.py:134
msgid "Match found for barcode data"
msgstr "Barkod verisi için eşleşme bulundu"
-#: barcodes/api.py:155
+#: barcodes/api.py:159
msgid "Must provide stockitem parameter"
msgstr "Stok kalemi parametresi sağlamalıdır"
-#: barcodes/api.py:162
+#: barcodes/api.py:166
msgid "No matching stock item found"
msgstr "Eşleşen stok kalemi bulunamadı"
-#: barcodes/api.py:193
+#: barcodes/api.py:197
msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:197
+#: barcodes/api.py:201
msgid "Barcode already matches Stock Location"
msgstr ""
-#: barcodes/api.py:201
+#: barcodes/api.py:205
msgid "Barcode already matches Part"
msgstr ""
-#: barcodes/api.py:207 barcodes/api.py:219
+#: barcodes/api.py:211 barcodes/api.py:223
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: barcodes/api.py:225
+#: barcodes/api.py:229
msgid "Barcode associated with Stock Item"
msgstr ""
@@ -641,18 +641,18 @@ msgstr "İptali Onayla"
msgid "Confirm build cancellation"
msgstr "Yapım işi iptalini onayla"
-#: build/models.py:133
+#: build/models.py:135
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:139 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:676 templates/js/translated/stock.js:2422
+#: templates/js/translated/build.js:677 templates/js/translated/stock.js:2378
msgid "Build Order"
msgstr "Yapım İşi Emri"
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:140 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:92
#: order/templates/order/so_sidebar.html:13
@@ -662,41 +662,41 @@ msgstr "Yapım İşi Emri"
msgid "Build Orders"
msgstr "Yapım İşi Emirleri"
-#: build/models.py:198
+#: build/models.py:200
msgid "Build Order Reference"
msgstr "Yapım İşi Emri Referansı"
-#: build/models.py:199 order/models.py:213 order/models.py:563
-#: order/models.py:843 part/models.py:2716
+#: build/models.py:201 order/models.py:213 order/models.py:563
+#: order/models.py:843 part/models.py:2731
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:772 templates/js/translated/build.js:1401
-#: templates/js/translated/order.js:1136 templates/js/translated/order.js:2261
+#: templates/js/translated/bom.js:770 templates/js/translated/build.js:1402
+#: templates/js/translated/order.js:1223 templates/js/translated/order.js:2349
msgid "Reference"
msgstr "Referans"
-#: build/models.py:210
+#: build/models.py:212
msgid "Brief description of the build"
msgstr "Yapım işinin kısa açıklaması"
-#: build/models.py:219 build/templates/build/build_base.html:169
+#: build/models.py:221 build/templates/build/build_base.html:169
#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr "Üst Yapım İşi"
-#: build/models.py:220
+#: build/models.py:222
msgid "BuildOrder to which this build is allocated"
msgstr "Bu yapım işinin tahsis edildiği yapım işi emri"
-#: build/models.py:225 build/templates/build/build_base.html:77
+#: build/models.py:227 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
#: order/models.py:912 order/models.py:986
#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359
-#: part/models.py:2249 part/models.py:2265 part/models.py:2284
-#: part/models.py:2301 part/models.py:2403 part/models.py:2525
-#: part/models.py:2615 part/models.py:2691 part/models.py:2998
-#: part/serializers.py:666 part/templates/part/part_app_base.html:8
+#: part/models.py:2263 part/models.py:2279 part/models.py:2298
+#: part/models.py:2315 part/models.py:2417 part/models.py:2539
+#: part/models.py:2629 part/models.py:2706 part/models.py:3013
+#: part/serializers.py:669 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: part/templates/part/upload_bom.html:52
@@ -707,231 +707,231 @@ msgstr "Bu yapım işinin tahsis edildiği yapım işi emri"
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551
-#: templates/js/translated/bom.js:730 templates/js/translated/build.js:902
-#: templates/js/translated/build.js:1270 templates/js/translated/build.js:1655
-#: templates/js/translated/build.js:1925 templates/js/translated/company.js:492
+#: templates/js/translated/bom.js:728 templates/js/translated/build.js:903
+#: templates/js/translated/build.js:1271 templates/js/translated/build.js:1666
+#: templates/js/translated/build.js:1978 templates/js/translated/company.js:492
#: templates/js/translated/company.js:749 templates/js/translated/order.js:84
-#: templates/js/translated/order.js:651 templates/js/translated/order.js:1090
-#: templates/js/translated/order.js:1693 templates/js/translated/order.js:2050
-#: templates/js/translated/order.js:2245 templates/js/translated/part.js:1006
-#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1254
-#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1657
-#: templates/js/translated/stock.js:2892 templates/js/translated/stock.js:2991
+#: templates/js/translated/order.js:711 templates/js/translated/order.js:1177
+#: templates/js/translated/order.js:1781 templates/js/translated/order.js:2138
+#: templates/js/translated/order.js:2333 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1088 templates/js/translated/part.js:1255
+#: templates/js/translated/stock.js:518 templates/js/translated/stock.js:683
+#: templates/js/translated/stock.js:890 templates/js/translated/stock.js:1613
+#: templates/js/translated/stock.js:2848 templates/js/translated/stock.js:2947
msgid "Part"
msgstr "Parça"
-#: build/models.py:233
+#: build/models.py:235
msgid "Select part to build"
msgstr "Yapım işi için parça seçin"
-#: build/models.py:238
+#: build/models.py:240
msgid "Sales Order Reference"
msgstr "Satış Emri Referansı"
-#: build/models.py:242
+#: build/models.py:244
msgid "SalesOrder to which this build is allocated"
msgstr "Bu yapım işinin tahsis edildiği satış emri"
-#: build/models.py:247 templates/js/translated/build.js:1643
-#: templates/js/translated/order.js:1681
+#: build/models.py:249 build/serializers.py:729
+#: templates/js/translated/build.js:1654 templates/js/translated/order.js:1769
msgid "Source Location"
msgstr "Kaynak Konum"
-#: build/models.py:251
+#: build/models.py:253
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr "Bu yapım işi için stok alınacak konumu seçin (her hangi bir stok konumundan alınması için boş bırakın)"
-#: build/models.py:256
+#: build/models.py:258
msgid "Destination Location"
msgstr "Hedef Konum"
-#: build/models.py:260
+#: build/models.py:262
msgid "Select location where the completed items will be stored"
msgstr "Tamamlanmış ögelerin saklanacağı konumu seçiniz"
-#: build/models.py:264
+#: build/models.py:266
msgid "Build Quantity"
msgstr "Yapım İşi Miktarı"
-#: build/models.py:267
+#: build/models.py:269
msgid "Number of stock items to build"
msgstr "Yapım işi stok kalemlerinin sayısı"
-#: build/models.py:271
+#: build/models.py:273
msgid "Completed items"
msgstr "Tamamlanmış ögeler"
-#: build/models.py:273
+#: build/models.py:275
msgid "Number of stock items which have been completed"
msgstr "Tamamlanan stok kalemlerinin sayısı"
-#: build/models.py:277 part/templates/part/part_base.html:234
+#: build/models.py:279 part/templates/part/part_base.html:234
msgid "Build Status"
msgstr "Yapım İşi Durumu"
-#: build/models.py:281
+#: build/models.py:283
msgid "Build status code"
msgstr "Yapım işi durum kodu"
-#: build/models.py:285 build/serializers.py:218 order/serializers.py:272
-#: stock/models.py:570 templates/js/translated/order.js:513
+#: build/models.py:287 build/serializers.py:218 order/serializers.py:272
+#: stock/models.py:622 templates/js/translated/order.js:573
msgid "Batch Code"
msgstr "Sıra numarası"
-#: build/models.py:289 build/serializers.py:219
+#: build/models.py:291 build/serializers.py:219
msgid "Batch code for this build output"
msgstr "Yapım işi çıktısı için sıra numarası"
-#: build/models.py:292 order/models.py:129 part/models.py:999
-#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1379
+#: build/models.py:294 order/models.py:129 part/models.py:999
+#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1467
msgid "Creation Date"
msgstr "Oluşturulma tarihi"
-#: build/models.py:296 order/models.py:585
+#: build/models.py:298 order/models.py:585
msgid "Target completion date"
msgstr "Hedef tamamlama tarihi"
-#: build/models.py:297
+#: build/models.py:299
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Yapım işinin tamamlanması için hedef tarih. Bu tarihten sonra yapım işi gecikmiş olacak."
-#: build/models.py:300 order/models.py:255
-#: templates/js/translated/build.js:2002
+#: build/models.py:302 order/models.py:255
+#: templates/js/translated/build.js:2055
msgid "Completion Date"
msgstr "Tamamlama tarihi"
-#: build/models.py:306
+#: build/models.py:308
msgid "completed by"
msgstr "tamamlayan"
-#: build/models.py:314 templates/js/translated/build.js:1970
+#: build/models.py:316 templates/js/translated/build.js:2023
msgid "Issued by"
msgstr "Veren"
-#: build/models.py:315
+#: build/models.py:317
msgid "User who issued this build order"
msgstr "Bu yapım işi emrini veren kullanıcı"
-#: build/models.py:323 build/templates/build/build_base.html:190
+#: build/models.py:325 build/templates/build/build_base.html:190
#: build/templates/build/detail.html:116 order/models.py:143
#: order/templates/order/order_base.html:170
#: order/templates/order/sales_order_base.html:182 part/models.py:1003
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1982 templates/js/translated/order.js:945
+#: templates/js/translated/build.js:2035 templates/js/translated/order.js:1005
msgid "Responsible"
msgstr "Sorumlu"
-#: build/models.py:324
+#: build/models.py:326
msgid "User responsible for this build order"
msgstr "Bu yapım işi emrinden sorumlu kullanıcı"
-#: build/models.py:329 build/templates/build/detail.html:102
+#: build/models.py:331 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:564
+#: part/templates/part/part_base.html:354 stock/models.py:616
#: stock/templates/stock/item_base.html:352
msgid "External Link"
msgstr "Harici Bağlantı"
-#: build/models.py:334 build/serializers.py:381
+#: build/models.py:336 build/serializers.py:381
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
#: order/models.py:147 order/models.py:845 order/models.py:1107
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/models.py:988
-#: part/templates/part/detail.html:146 part/templates/part/part_sidebar.html:57
+#: part/templates/part/detail.html:141 part/templates/part/part_sidebar.html:57
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:137 stock/forms.py:171 stock/models.py:636
-#: stock/models.py:1971 stock/models.py:2077 stock/serializers.py:332
+#: stock/forms.py:137 stock/forms.py:171 stock/models.py:688
+#: stock/models.py:2023 stock/models.py:2129 stock/serializers.py:332
#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:936
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1257
-#: templates/js/translated/order.js:1562 templates/js/translated/order.js:2419
-#: templates/js/translated/stock.js:1344 templates/js/translated/stock.js:1935
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934
+#: templates/js/translated/company.js:845 templates/js/translated/order.js:1344
+#: templates/js/translated/order.js:1650 templates/js/translated/order.js:2507
+#: templates/js/translated/stock.js:1300 templates/js/translated/stock.js:1891
msgid "Notes"
msgstr "Notlar"
-#: build/models.py:335
+#: build/models.py:337
msgid "Extra build notes"
msgstr "Yapım işi için ekstra notlar"
-#: build/models.py:748
+#: build/models.py:750
msgid "No build output specified"
msgstr "Yapım işi çıktısı belirtilmedi"
-#: build/models.py:751
+#: build/models.py:753
msgid "Build output is already completed"
msgstr "Yapım işi çıktısı zaten tamamlanmış"
-#: build/models.py:754
+#: build/models.py:756
msgid "Build output does not match Build Order"
msgstr "Yapım işi çıktısı, yapım işi emri ile eşleşmiyor"
-#: build/models.py:1060
+#: build/models.py:1162
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "Ana parça izlenebilir olarak işaretlendiğinden, yapım işi çıktısı için bir yapım işi ögesi belirtmelidir"
-#: build/models.py:1069
+#: build/models.py:1171
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1079
+#: build/models.py:1181
msgid "Stock item is over-allocated"
msgstr "Stok kalemi fazladan tahsis edilmiş"
-#: build/models.py:1085 order/models.py:1225
+#: build/models.py:1187 order/models.py:1225
msgid "Allocation quantity must be greater than zero"
msgstr "Tahsis edilen miktar sıfırdan büyük olmalıdır"
-#: build/models.py:1091
+#: build/models.py:1193
msgid "Quantity must be 1 for serialized stock"
msgstr "Seri numaralı stok için miktar bir olmalı"
-#: build/models.py:1148
+#: build/models.py:1250
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1217 stock/templates/stock/item_base.html:324
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898
+#: build/models.py:1319 stock/templates/stock/item_base.html:324
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1951
#: templates/navbar.html:35
msgid "Build"
msgstr "Yapım İşi"
-#: build/models.py:1218
+#: build/models.py:1320
msgid "Build to allocate parts"
msgstr "Yapım işi için tahsis edilen parçalar"
-#: build/models.py:1234 build/serializers.py:576 order/serializers.py:783
+#: build/models.py:1336 build/serializers.py:576 order/serializers.py:783
#: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635
#: stock/serializers.py:753 stock/templates/stock/item_base.html:9
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:346
-#: templates/js/translated/build.js:687 templates/js/translated/build.js:692
-#: templates/js/translated/build.js:1657 templates/js/translated/build.js:2050
-#: templates/js/translated/order.js:85 templates/js/translated/order.js:1694
-#: templates/js/translated/order.js:1949 templates/js/translated/order.js:1954
-#: templates/js/translated/order.js:2057 templates/js/translated/order.js:2147
-#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728
-#: templates/js/translated/stock.js:2753
+#: templates/js/translated/build.js:688 templates/js/translated/build.js:693
+#: templates/js/translated/build.js:1668 templates/js/translated/build.js:2103
+#: templates/js/translated/order.js:85 templates/js/translated/order.js:1782
+#: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:2235
+#: templates/js/translated/stock.js:519 templates/js/translated/stock.js:684
+#: templates/js/translated/stock.js:2709
msgid "Stock Item"
msgstr "Stok Kalemi"
-#: build/models.py:1235
+#: build/models.py:1337
msgid "Source stock item"
msgstr "Kaynak stok kalemi"
-#: build/models.py:1247 build/serializers.py:188
+#: build/models.py:1349 build/serializers.py:188
#: build/templates/build/build_base.html:82
#: build/templates/build/detail.html:35 common/models.py:1317
#: company/forms.py:42 company/templates/company/supplier_part.html:251
#: order/models.py:836 order/models.py:1265 order/serializers.py:903
#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144
-#: part/forms.py:160 part/forms.py:176 part/models.py:2707
-#: part/templates/part/detail.html:1008 part/templates/part/detail.html:1094
+#: part/forms.py:160 part/forms.py:176 part/models.py:2722
+#: part/templates/part/detail.html:994 part/templates/part/detail.html:1080
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_build_order_base.html:114
@@ -943,32 +943,32 @@ msgstr "Kaynak stok kalemi"
#: stock/templates/stock/item_base.html:176
#: stock/templates/stock/item_base.html:241
#: stock/templates/stock/item_base.html:249
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:780
-#: templates/js/translated/build.js:375 templates/js/translated/build.js:523
-#: templates/js/translated/build.js:714 templates/js/translated/build.js:911
-#: templates/js/translated/build.js:921 templates/js/translated/build.js:1297
-#: templates/js/translated/build.js:1658
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778
+#: templates/js/translated/build.js:376 templates/js/translated/build.js:524
+#: templates/js/translated/build.js:715 templates/js/translated/build.js:912
+#: templates/js/translated/build.js:922 templates/js/translated/build.js:1298
+#: templates/js/translated/build.js:1669
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:101 templates/js/translated/order.js:1142
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:1976
-#: templates/js/translated/order.js:2064 templates/js/translated/order.js:2153
-#: templates/js/translated/order.js:2267 templates/js/translated/part.js:906
-#: templates/js/translated/part.js:1884 templates/js/translated/part.js:2007
-#: templates/js/translated/part.js:2085 templates/js/translated/stock.js:391
-#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758
-#: templates/js/translated/stock.js:2802 templates/js/translated/stock.js:2904
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:1229
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:2064
+#: templates/js/translated/order.js:2152 templates/js/translated/order.js:2241
+#: templates/js/translated/order.js:2355 templates/js/translated/part.js:907
+#: templates/js/translated/part.js:1885 templates/js/translated/part.js:2008
+#: templates/js/translated/part.js:2086 templates/js/translated/stock.js:390
+#: templates/js/translated/stock.js:544 templates/js/translated/stock.js:714
+#: templates/js/translated/stock.js:2758 templates/js/translated/stock.js:2860
msgid "Quantity"
msgstr "Miktar"
-#: build/models.py:1248
+#: build/models.py:1350
msgid "Stock quantity to allocate to build"
msgstr "Yapım işi için tahsis edilen stok miktarı"
-#: build/models.py:1256
+#: build/models.py:1358
msgid "Install into"
msgstr "Kurulduğu yer"
-#: build/models.py:1257
+#: build/models.py:1359
msgid "Destination stock item"
msgstr "Hedef stok kalemi"
@@ -997,8 +997,8 @@ msgid "Enter quantity for build output"
msgstr "Yapım işi çıktısı için miktarını girin"
#: build/serializers.py:201 build/serializers.py:596 order/models.py:280
-#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:826
-#: stock/models.py:404 stock/models.py:1180 stock/serializers.py:305
+#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:836
+#: stock/models.py:456 stock/models.py:1232 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1012,8 +1012,8 @@ msgstr ""
#: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907
#: stock/forms.py:78 stock/serializers.py:314
-#: templates/js/translated/order.js:524 templates/js/translated/stock.js:238
-#: templates/js/translated/stock.js:392
+#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237
+#: templates/js/translated/stock.js:391
msgid "Serial Numbers"
msgstr "Seri Numaraları"
@@ -1029,7 +1029,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:275 stock/api.py:549
+#: build/serializers.py:275 stock/api.py:551
msgid "The following serial numbers already exist"
msgstr ""
@@ -1041,13 +1041,13 @@ msgstr ""
#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788
#: stock/serializers.py:1029 stock/templates/stock/item_base.html:292
#: templates/js/translated/barcode.js:384
-#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:699
-#: templates/js/translated/build.js:1309 templates/js/translated/order.js:551
-#: templates/js/translated/order.js:1961 templates/js/translated/order.js:2072
-#: templates/js/translated/order.js:2080 templates/js/translated/order.js:2161
-#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564
-#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936
-#: templates/js/translated/stock.js:1807 templates/js/translated/stock.js:2694
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700
+#: templates/js/translated/build.js:1310 templates/js/translated/order.js:611
+#: templates/js/translated/order.js:2049 templates/js/translated/order.js:2160
+#: templates/js/translated/order.js:2168 templates/js/translated/order.js:2249
+#: templates/js/translated/part.js:179 templates/js/translated/stock.js:520
+#: templates/js/translated/stock.js:685 templates/js/translated/stock.js:892
+#: templates/js/translated/stock.js:1763 templates/js/translated/stock.js:2650
msgid "Location"
msgstr "Konum"
@@ -1058,10 +1058,10 @@ msgstr ""
#: build/serializers.py:377 build/templates/build/build_base.html:142
#: build/templates/build/detail.html:63 order/models.py:579
#: order/serializers.py:290 stock/templates/stock/item_base.html:182
-#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1954
-#: templates/js/translated/order.js:656 templates/js/translated/order.js:915
-#: templates/js/translated/order.js:1371 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2771 templates/js/translated/stock.js:2920
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2007
+#: templates/js/translated/order.js:716 templates/js/translated/order.js:975
+#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2727 templates/js/translated/stock.js:2876
msgid "Status"
msgstr "Durum"
@@ -1073,7 +1073,7 @@ msgstr ""
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:445 templates/js/translated/build.js:150
+#: build/serializers.py:445 templates/js/translated/build.js:151
msgid "Required stock has not been fully allocated"
msgstr "Gerekli stok tamamen tahsis edilemedi"
@@ -1085,7 +1085,7 @@ msgstr ""
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:461 templates/js/translated/build.js:154
+#: build/serializers.py:461 templates/js/translated/build.js:155
msgid "Required build quantity has not been completed"
msgstr "Gerekli yapım işi miktarı tamamlanmadı"
@@ -1097,8 +1097,8 @@ msgstr ""
msgid "No build outputs have been created for this build order"
msgstr ""
-#: build/serializers.py:501 build/serializers.py:550 part/models.py:2831
-#: part/models.py:2990
+#: build/serializers.py:501 build/serializers.py:550 part/models.py:2846
+#: part/models.py:3005
msgid "BOM Item"
msgstr ""
@@ -1135,6 +1135,26 @@ msgstr ""
msgid "Allocation items must be provided"
msgstr ""
+#: build/serializers.py:730
+msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
+msgstr ""
+
+#: build/serializers.py:735
+msgid "Interchangeable Stock"
+msgstr ""
+
+#: build/serializers.py:736
+msgid "Stock items in multiple locations can be used interchangeably"
+msgstr ""
+
+#: build/serializers.py:741
+msgid "Substitute Stock"
+msgstr ""
+
+#: build/serializers.py:742
+msgid "Allow allocation of substitute parts"
+msgstr ""
+
#: build/tasks.py:98
msgid "Stock required for build order"
msgstr ""
@@ -1206,9 +1226,9 @@ msgstr "Stok, yapım işi emri için tamamen tahsis edilemedi"
#: order/templates/order/order_base.html:156
#: order/templates/order/sales_order_base.html:163
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1994 templates/js/translated/order.js:932
-#: templates/js/translated/order.js:1204 templates/js/translated/order.js:1387
-#: templates/js/translated/order.js:2330 templates/js/translated/part.js:910
+#: templates/js/translated/build.js:2047 templates/js/translated/order.js:992
+#: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475
+#: templates/js/translated/order.js:2418 templates/js/translated/part.js:911
msgid "Target Date"
msgstr "Hedeflenen tarih"
@@ -1230,7 +1250,7 @@ msgstr "Vadesi geçmiş"
#: build/templates/build/build_base.html:163
#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
#: order/templates/order/sales_order_base.html:170
-#: templates/js/translated/build.js:1940
+#: templates/js/translated/build.js:1993
#: templates/js/translated/table_filters.js:365
msgid "Completed"
msgstr "Tamamlandı"
@@ -1242,7 +1262,7 @@ msgstr "Tamamlandı"
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:286
-#: templates/js/translated/order.js:1326 templates/js/translated/stock.js:2436
+#: templates/js/translated/order.js:1414 templates/js/translated/stock.js:2392
msgid "Sales Order"
msgstr "Sipariş Emri"
@@ -1277,7 +1297,7 @@ msgid "Stock can be taken from any available location."
msgstr "Stok herhangi bir konumdan alınabilir."
#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133
-#: templates/js/translated/order.js:657 templates/js/translated/order.js:1246
+#: templates/js/translated/order.js:717 templates/js/translated/order.js:1333
msgid "Destination"
msgstr "Hedef"
@@ -1285,13 +1305,13 @@ msgstr "Hedef"
msgid "Destination location not specified"
msgstr "Hedef konumu belirtilmedi"
-#: build/templates/build/detail.html:74 templates/js/translated/build.js:929
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:930
msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:310
-#: templates/js/translated/stock.js:1796 templates/js/translated/stock.js:2927
+#: templates/js/translated/stock.js:1752 templates/js/translated/stock.js:2883
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:238
msgid "Batch"
@@ -1300,7 +1320,7 @@ msgstr "Toplu"
#: build/templates/build/detail.html:127
#: order/templates/order/order_base.html:143
#: order/templates/order/sales_order_base.html:157
-#: templates/js/translated/build.js:1962
+#: templates/js/translated/build.js:2015
msgid "Created"
msgstr "Oluşturuldu"
@@ -1320,7 +1340,7 @@ msgstr "Alt Yapım İşi Emrileri"
msgid "Allocate Stock to Build"
msgstr "Yapım İşi için Stok Tahsis Et"
-#: build/templates/build/detail.html:177 templates/js/translated/build.js:1484
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1485
msgid "Unallocate stock"
msgstr "Stok tahsisini kaldır"
@@ -1329,111 +1349,119 @@ msgid "Unallocate Stock"
msgstr "Stok Tahsisini Kaldır"
#: build/templates/build/detail.html:180
-msgid "Allocate stock to build"
-msgstr "Yapım işi için stok tahsis et"
+msgid "Automatically allocate stock to build"
+msgstr ""
-#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
+#: build/templates/build/detail.html:181
+msgid "Auto Allocate"
+msgstr ""
+
+#: build/templates/build/detail.html:183
+msgid "Manually allocate stock to build"
+msgstr ""
+
+#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8
msgid "Allocate Stock"
msgstr "Stok Tahsis Et"
-#: build/templates/build/detail.html:184
+#: build/templates/build/detail.html:187
msgid "Order required parts"
msgstr "Gerekli parçaları sipariş edin"
-#: build/templates/build/detail.html:185
+#: build/templates/build/detail.html:188
#: company/templates/company/detail.html:38
#: company/templates/company/detail.html:85 order/views.py:463
-#: part/templates/part/category.html:177
+#: part/templates/part/category.html:174
msgid "Order Parts"
msgstr "Parça Siparişi"
-#: build/templates/build/detail.html:197
+#: build/templates/build/detail.html:200
msgid "Untracked stock has been fully allocated for this Build Order"
msgstr "Takip edilmeyen stok yapım işi emri için tamamen tahsis edildi"
-#: build/templates/build/detail.html:201
+#: build/templates/build/detail.html:204
msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr "Takip edilmeyen stok yapım işi emri için tamamen tahsis edilemedi"
-#: build/templates/build/detail.html:208
+#: build/templates/build/detail.html:211
msgid "Allocate selected items"
msgstr ""
-#: build/templates/build/detail.html:218
+#: build/templates/build/detail.html:221
msgid "This Build Order does not have any associated untracked BOM items"
msgstr "Bu yapım işi emri, herhangi bir takip edilmeyen malzeme listesi öğesine sahip değil"
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:230
msgid "Incomplete Build Outputs"
msgstr "Tamamlanmamış Yapım İşi Çıktıları"
-#: build/templates/build/detail.html:231
+#: build/templates/build/detail.html:234
msgid "Create new build output"
msgstr "Yeni yapım işi çıktısı oluştur"
-#: build/templates/build/detail.html:232
+#: build/templates/build/detail.html:235
msgid "New Build Output"
msgstr ""
-#: build/templates/build/detail.html:246
+#: build/templates/build/detail.html:249
msgid "Output Actions"
msgstr ""
-#: build/templates/build/detail.html:250
+#: build/templates/build/detail.html:253
msgid "Complete selected build outputs"
msgstr ""
-#: build/templates/build/detail.html:251
+#: build/templates/build/detail.html:254
msgid "Complete outputs"
msgstr ""
-#: build/templates/build/detail.html:253
+#: build/templates/build/detail.html:256
msgid "Delete selected build outputs"
msgstr ""
-#: build/templates/build/detail.html:254
+#: build/templates/build/detail.html:257
msgid "Delete outputs"
msgstr ""
-#: build/templates/build/detail.html:270
+#: build/templates/build/detail.html:273
msgid "Completed Build Outputs"
msgstr "Tamamlanmış Yapım İşi Çıktıları"
-#: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19
+#: build/templates/build/detail.html:285 build/templates/build/sidebar.html:19
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:107
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:222
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217
#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:105
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr "Ekler"
-#: build/templates/build/detail.html:298
+#: build/templates/build/detail.html:301
msgid "Build Notes"
msgstr "Yapım İşi Notları"
-#: build/templates/build/detail.html:302 build/templates/build/detail.html:478
-#: company/templates/company/detail.html:188
-#: company/templates/company/detail.html:215
+#: build/templates/build/detail.html:305 build/templates/build/detail.html:481
+#: company/templates/company/detail.html:190
+#: company/templates/company/detail.html:217
#: order/templates/order/purchase_order_detail.html:80
#: order/templates/order/purchase_order_detail.html:108
#: order/templates/order/sales_order_detail.html:127
#: order/templates/order/sales_order_detail.html:186
-#: part/templates/part/detail.html:150 stock/templates/stock/item.html:125
+#: part/templates/part/detail.html:145 stock/templates/stock/item.html:125
#: stock/templates/stock/item.html:223
msgid "Edit Notes"
msgstr "Notları Düzenle"
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:519
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:520
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:329
+#: build/templates/build/index.html:18 part/templates/part/detail.html:322
msgid "New Build Order"
msgstr "Yeni Yapım İşi Emri"
@@ -1658,7 +1686,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:732 part/models.py:2527 report/models.py:187
+#: common/models.py:732 part/models.py:2541 report/models.py:187
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:417
msgid "Template"
@@ -1668,7 +1696,7 @@ msgstr "Şablon"
msgid "Parts are templates by default"
msgstr "Parçaları varsayılan olan şablondur"
-#: common/models.py:739 part/models.py:951 templates/js/translated/bom.js:1300
+#: common/models.py:739 part/models.py:951 templates/js/translated/bom.js:1305
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:429
msgid "Assembly"
@@ -2243,7 +2271,7 @@ msgstr ""
#: common/models.py:1325 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:937 templates/js/translated/part.js:1889
+#: templates/js/translated/part.js:938 templates/js/translated/part.js:1890
msgid "Price"
msgstr "Fiyat"
@@ -2337,14 +2365,14 @@ msgstr ""
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
-#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:210
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208
#: templates/patterns/wizard/upload.html:35
msgid "Upload File"
msgstr "Dosya Yükle"
#: common/views.py:94 order/views.py:244
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:211
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:209
#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr "Alanları Eşleştir"
@@ -2472,7 +2500,7 @@ msgstr "Para birimi"
msgid "Default currency used for this company"
msgstr "Bu şirket için varsayılan para birimi"
-#: company/models.py:320 company/models.py:535 stock/models.py:508
+#: company/models.py:320 company/models.py:535 stock/models.py:560
#: stock/templates/stock/item_base.html:137 templates/js/translated/bom.js:541
msgid "Base Part"
msgstr "Temel Parça"
@@ -2499,8 +2527,8 @@ msgstr "Üretici seçin"
#: company/models.py:342 company/templates/company/manufacturer_part.html:96
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1124
-#: templates/js/translated/part.js:245 templates/js/translated/part.js:895
+#: templates/js/translated/company.js:818 templates/js/translated/order.js:1211
+#: templates/js/translated/part.js:245 templates/js/translated/part.js:896
msgid "MPN"
msgstr "ÜPN"
@@ -2529,8 +2557,8 @@ msgstr "Parametre adı"
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2064 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1331
+#: stock/models.py:2116 templates/js/translated/company.js:647
+#: templates/js/translated/part.js:716 templates/js/translated/stock.js:1287
msgid "Value"
msgstr "Değer"
@@ -2538,10 +2566,10 @@ msgstr "Değer"
msgid "Parameter value"
msgstr "Parametre değeri"
-#: company/models.py:429 part/models.py:945 part/models.py:2495
+#: company/models.py:429 part/models.py:945 part/models.py:2509
#: part/templates/part/part_base.html:288
#: templates/InvenTree/settings/settings.html:324
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:721
+#: templates/js/translated/company.js:653 templates/js/translated/part.js:722
msgid "Units"
msgstr ""
@@ -2559,8 +2587,8 @@ msgstr ""
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237
#: part/bom.py:265 stock/templates/stock/item_base.html:376
#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:898
-#: templates/js/translated/part.js:215 templates/js/translated/part.js:863
+#: templates/js/translated/company.js:774 templates/js/translated/order.js:958
+#: templates/js/translated/part.js:215 templates/js/translated/part.js:864
#: templates/js/translated/table_filters.js:388
msgid "Supplier"
msgstr "Tedarikçi"
@@ -2570,8 +2598,8 @@ msgid "Select supplier"
msgstr "Tedarikçi seçin"
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1111
-#: templates/js/translated/part.js:226 templates/js/translated/part.js:881
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198
+#: templates/js/translated/part.js:226 templates/js/translated/part.js:882
msgid "SKU"
msgstr "SKU"
@@ -2592,7 +2620,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:119
-#: part/models.py:2719 part/templates/part/upload_bom.html:59
+#: part/models.py:2734 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409
msgid "Note"
@@ -2607,8 +2635,8 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:532 stock/templates/stock/item_base.html:317
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1931
+#: stock/models.py:584 stock/templates/stock/item_base.html:317
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1887
msgid "Packaging"
msgstr "Paketleme"
@@ -2676,11 +2704,11 @@ msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:83 order/models.py:574
-#: order/templates/order/sales_order_base.html:115 stock/models.py:551
-#: stock/models.py:552 stock/serializers.py:683
+#: order/templates/order/sales_order_base.html:115 stock/models.py:603
+#: stock/models.py:604 stock/serializers.py:683
#: stock/templates/stock/item_base.html:269
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1348
-#: templates/js/translated/stock.js:2735
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1436
+#: templates/js/translated/stock.js:2691
#: templates/js/translated/table_filters.js:392
msgid "Customer"
msgstr "Müşteri"
@@ -2711,7 +2739,7 @@ msgstr "Yeni tedarikçi parçası oluştur"
#: company/templates/company/detail.html:20
#: company/templates/company/manufacturer_part.html:118
-#: part/templates/part/detail.html:367
+#: part/templates/part/detail.html:360
msgid "New Supplier Part"
msgstr "Yeni Tedarikçi Parçası"
@@ -2719,14 +2747,14 @@ msgstr "Yeni Tedarikçi Parçası"
#: company/templates/company/detail.html:79
#: company/templates/company/manufacturer_part.html:127
#: company/templates/company/manufacturer_part.html:156
-#: part/templates/part/category.html:171 part/templates/part/detail.html:376
-#: part/templates/part/detail.html:405
+#: part/templates/part/category.html:168 part/templates/part/detail.html:369
+#: part/templates/part/detail.html:398
msgid "Options"
msgstr ""
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177
+#: part/templates/part/category.html:174
msgid "Order parts"
msgstr ""
@@ -2748,7 +2776,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:395
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:388
msgid "New Manufacturer Part"
msgstr ""
@@ -2762,7 +2790,7 @@ msgstr "Tedarikçi Stoku"
#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:40
+#: part/templates/part/detail.html:80 part/templates/part/part_sidebar.html:40
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
@@ -2784,7 +2812,7 @@ msgstr "Yeni Satın Alma Emri"
#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:44
+#: part/templates/part/detail.html:103 part/templates/part/part_sidebar.html:44
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
@@ -2802,23 +2830,23 @@ msgid "New Sales Order"
msgstr "Yeni Satış Emri"
#: company/templates/company/detail.html:168
-#: templates/js/translated/build.js:1281
+#: templates/js/translated/build.js:1282
msgid "Assigned Stock"
msgstr "Atanan Stok"
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:186
msgid "Company Notes"
msgstr ""
-#: company/templates/company/detail.html:384
+#: company/templates/company/detail.html:380
#: company/templates/company/manufacturer_part.html:215
-#: part/templates/part/detail.html:449
+#: part/templates/part/detail.html:442
msgid "Delete Supplier Parts?"
msgstr ""
-#: company/templates/company/detail.html:385
+#: company/templates/company/detail.html:381
#: company/templates/company/manufacturer_part.html:216
-#: part/templates/part/detail.html:450
+#: part/templates/part/detail.html:443
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2835,7 +2863,7 @@ msgstr "Üreticiler"
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:34
#: company/templates/company/supplier_part.html:159
-#: part/templates/part/detail.html:88 part/templates/part/part_base.html:76
+#: part/templates/part/detail.html:83 part/templates/part/part_base.html:76
msgid "Order part"
msgstr "Parça siparişi"
@@ -2862,14 +2890,14 @@ msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
-#: part/templates/part/detail.html:378
+#: part/templates/part/detail.html:371
msgid "Delete supplier parts"
msgstr "Tedarikçi parçalarını sil"
#: company/templates/company/manufacturer_part.html:129
#: company/templates/company/manufacturer_part.html:158
#: company/templates/company/manufacturer_part.html:254
-#: part/templates/part/detail.html:378 part/templates/part/detail.html:407
+#: part/templates/part/detail.html:371 part/templates/part/detail.html:400
#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31
#: users/models.py:217
msgid "Delete"
@@ -2878,12 +2906,12 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:143
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:17
-#: part/templates/part/detail.html:196 part/templates/part/part_sidebar.html:9
+#: part/templates/part/detail.html:191 part/templates/part/part_sidebar.html:9
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:147
-#: part/templates/part/detail.html:201
+#: part/templates/part/detail.html:196
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:66
msgid "New Parameter"
@@ -2894,7 +2922,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:191
-#: part/templates/part/detail.html:908
+#: part/templates/part/detail.html:894
msgid "Add Parameter"
msgstr ""
@@ -2923,9 +2951,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:516
+#: company/templates/company/supplier_part.html:24 stock/models.py:568
#: stock/templates/stock/item_base.html:381
-#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1888
+#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1844
msgid "Supplier Part"
msgstr "Tedarikçi Parçası"
@@ -2951,7 +2979,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:166
-#: templates/js/translated/stock.js:368
+#: templates/js/translated/stock.js:367
msgid "New Stock Item"
msgstr ""
@@ -2961,7 +2989,7 @@ msgid "Supplier Part Orders"
msgstr "Tedarikçi Parçası Emirleri"
#: company/templates/company/supplier_part.html:160
-#: part/templates/part/detail.html:89
+#: part/templates/part/detail.html:84
msgid "Order Part"
msgstr ""
@@ -2972,7 +3000,7 @@ msgstr "Fiyat Bilgisi"
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1319
+#: part/templates/part/prices.html:271 part/views.py:1254
msgid "Add Price Break"
msgstr ""
@@ -2980,11 +3008,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1381
+#: company/templates/company/supplier_part.html:224 part/views.py:1316
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1367
+#: company/templates/company/supplier_part.html:238 part/views.py:1302
msgid "Edit Price Break"
msgstr ""
@@ -3002,10 +3030,10 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:150
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/bom.js:553 templates/js/translated/part.js:495
-#: templates/js/translated/part.js:630 templates/js/translated/part.js:1147
-#: templates/js/translated/part.js:1308 templates/js/translated/stock.js:935
-#: templates/js/translated/stock.js:1711 templates/navbar.html:28
+#: templates/js/translated/bom.js:553 templates/js/translated/part.js:496
+#: templates/js/translated/part.js:631 templates/js/translated/part.js:1148
+#: templates/js/translated/part.js:1309 templates/js/translated/stock.js:891
+#: templates/js/translated/stock.js:1667 templates/navbar.html:28
msgid "Stock"
msgstr "Stok"
@@ -3028,7 +3056,7 @@ msgstr "Fiyatlandırma"
#: stock/templates/stock/location.html:150
#: stock/templates/stock/location.html:162
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2641
+#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2597
#: templates/stats.html:105 templates/stats.html:114 users/models.py:43
msgid "Stock Items"
msgstr "Stok Kalemleri"
@@ -3058,20 +3086,20 @@ msgstr "Şirketler"
msgid "New Company"
msgstr "Yeni Şirket"
-#: company/views.py:129 part/views.py:591
+#: company/views.py:129 part/views.py:589
msgid "Download Image"
msgstr "Resmi İndirin"
-#: company/views.py:158 part/views.py:623
+#: company/views.py:158 part/views.py:621
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:630
+#: company/views.py:165 part/views.py:628
#, python-brace-format
msgid "Invalid response: {code}"
msgstr "Geçersiz yanıt: {code}"
-#: company/views.py:174 part/views.py:639
+#: company/views.py:174 part/views.py:637
msgid "Supplied URL is not a valid image file"
msgstr "Sağlanan URL geçerli bir resim dosyası değil"
@@ -3190,7 +3218,7 @@ msgid "Company from which the items are being ordered"
msgstr ""
#: order/models.py:231 order/templates/order/order_base.html:118
-#: templates/js/translated/order.js:907
+#: templates/js/translated/order.js:967
msgid "Supplier Reference"
msgstr ""
@@ -3247,7 +3275,7 @@ msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
#: order/models.py:589 order/models.py:1084
-#: templates/js/translated/order.js:1395 templates/js/translated/order.js:1546
+#: templates/js/translated/order.js:1483 templates/js/translated/order.js:1634
msgid "Shipment Date"
msgstr ""
@@ -3292,7 +3320,7 @@ msgid "Supplier part must match supplier"
msgstr ""
#: order/models.py:891 order/models.py:982 order/models.py:1078
-#: templates/js/translated/order.js:1937 templates/js/translated/stock.js:2403
+#: templates/js/translated/order.js:2025 templates/js/translated/stock.js:2359
msgid "Order"
msgstr ""
@@ -3300,8 +3328,8 @@ msgstr ""
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:331
-#: templates/js/translated/order.js:876 templates/js/translated/part.js:838
-#: templates/js/translated/stock.js:1865 templates/js/translated/stock.js:2716
+#: templates/js/translated/order.js:936 templates/js/translated/part.js:839
+#: templates/js/translated/stock.js:1821 templates/js/translated/stock.js:2672
msgid "Purchase Order"
msgstr ""
@@ -3310,8 +3338,8 @@ msgid "Supplier part"
msgstr ""
#: order/models.py:920 order/templates/order/order_base.html:163
-#: templates/js/translated/order.js:654 templates/js/translated/order.js:1226
-#: templates/js/translated/part.js:932 templates/js/translated/part.js:959
+#: templates/js/translated/order.js:714 templates/js/translated/order.js:1313
+#: templates/js/translated/part.js:933 templates/js/translated/part.js:960
#: templates/js/translated/table_filters.js:312
msgid "Received"
msgstr ""
@@ -3320,9 +3348,9 @@ msgstr ""
msgid "Number of items received"
msgstr ""
-#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:645
+#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:697
#: stock/serializers.py:170 stock/templates/stock/item_base.html:338
-#: templates/js/translated/stock.js:1919
+#: templates/js/translated/stock.js:1875
msgid "Purchase Price"
msgstr ""
@@ -3456,11 +3484,11 @@ msgstr ""
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:273 templates/js/translated/order.js:514
+#: order/serializers.py:273 templates/js/translated/order.js:574
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:281 templates/js/translated/order.js:525
+#: order/serializers.py:281 templates/js/translated/order.js:585
msgid "Enter serial numbers for incoming stock items"
msgstr ""
@@ -3578,7 +3606,7 @@ msgstr ""
#: order/templates/order/order_base.html:94
#: order/templates/order/sales_order_base.html:89
-#: templates/js/translated/stock.js:2459
+#: templates/js/translated/stock.js:2415
msgid "Order Status"
msgstr ""
@@ -3650,10 +3678,10 @@ msgstr "Tedarikçi Parçası Seçin"
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/bom.js:76 templates/js/translated/build.js:380
-#: templates/js/translated/build.js:528 templates/js/translated/build.js:1547
-#: templates/js/translated/order.js:602 templates/js/translated/order.js:1605
-#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769
+#: templates/js/translated/bom.js:76 templates/js/translated/build.js:381
+#: templates/js/translated/build.js:529 templates/js/translated/build.js:1558
+#: templates/js/translated/order.js:662 templates/js/translated/order.js:1693
+#: templates/js/translated/stock.js:557 templates/js/translated/stock.js:725
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr ""
@@ -3717,8 +3745,8 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:940 templates/js/translated/order.js:1403
-#: templates/js/translated/order.js:1533
+#: templates/js/translated/order.js:1000 templates/js/translated/order.js:1491
+#: templates/js/translated/order.js:1621
msgid "Items"
msgstr "Ürünler"
@@ -3752,9 +3780,9 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:27
-#: order/templates/order/purchase_order_detail.html:182
+#: order/templates/order/purchase_order_detail.html:166
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:245
+#: order/templates/order/sales_order_detail.html:233
msgid "Add Line Item"
msgstr ""
@@ -3794,7 +3822,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:122
-#: templates/js/translated/order.js:1361
+#: templates/js/translated/order.js:1449
msgid "Customer Reference"
msgstr ""
@@ -3827,7 +3855,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:48
-#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1465
+#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1466
msgid "Actions"
msgstr "İşlemler"
@@ -3902,31 +3930,31 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:499
+#: part/api.py:502
msgid "Valid"
msgstr ""
-#: part/api.py:500
+#: part/api.py:503
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:505
+#: part/api.py:508
msgid "This option must be selected"
msgstr ""
-#: part/api.py:847
+#: part/api.py:866
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:851
+#: part/api.py:870
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:866
+#: part/api.py:885
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:897 part/api.py:901 part/api.py:916 part/api.py:920
+#: part/api.py:916 part/api.py:920 part/api.py:935 part/api.py:939
msgid "This field is required"
msgstr ""
@@ -3944,7 +3972,7 @@ msgid "Available Stock"
msgstr ""
#: part/bom.py:128 part/templates/part/part_base.html:203
-#: templates/js/translated/part.js:1323
+#: templates/js/translated/part.js:1324
msgid "On Order"
msgstr ""
@@ -3976,7 +4004,7 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:97 part/models.py:2571 part/templates/part/category.html:15
+#: part/models.py:97 part/models.py:2585 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -3993,7 +4021,7 @@ msgstr "Parça Kategorileri"
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:37
-#: templates/js/translated/part.js:1685 templates/navbar.html:21
+#: templates/js/translated/part.js:1686 templates/navbar.html:21
#: templates/stats.html:92 templates/stats.html:101 users/models.py:41
msgid "Parts"
msgstr "Parçalar"
@@ -4023,7 +4051,7 @@ msgstr "En son seri numarası"
msgid "Duplicate IPN not allowed in part settings"
msgstr "Yinelenen DPN'ye parça ayarlarında izin verilmiyor"
-#: part/models.py:803 part/models.py:2624
+#: part/models.py:803 part/models.py:2638
msgid "Part name"
msgstr "Parça adı"
@@ -4056,11 +4084,11 @@ msgstr "Anahtar kelimeler"
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:841 part/models.py:2321 part/models.py:2570
+#: part/models.py:841 part/models.py:2335 part/models.py:2584
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:223
-#: templates/js/translated/part.js:1290
+#: templates/js/translated/part.js:1291
msgid "Category"
msgstr ""
@@ -4069,8 +4097,8 @@ msgid "Part category"
msgstr ""
#: part/models.py:847 part/templates/part/part_base.html:274
-#: templates/js/translated/part.js:618 templates/js/translated/part.js:1243
-#: templates/js/translated/stock.js:1683
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:1244
+#: templates/js/translated/stock.js:1639
msgid "IPN"
msgstr "DPN"
@@ -4083,7 +4111,7 @@ msgid "Part revision or version number"
msgstr "Parça revizyon veya versiyon numarası"
#: part/models.py:855 part/templates/part/part_base.html:281
-#: report/models.py:200 templates/js/translated/part.js:622
+#: report/models.py:200 templates/js/translated/part.js:623
msgid "Revision"
msgstr "Revizyon"
@@ -4175,301 +4203,309 @@ msgstr "Oluşturan Kullanıcı"
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2371
+#: part/models.py:2385
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:2388
+#: part/models.py:2402
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2408 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:1311
+#: part/models.py:2422 templates/js/translated/part.js:1737
+#: templates/js/translated/stock.js:1267
msgid "Test Name"
msgstr "Test Adı"
-#: part/models.py:2409
+#: part/models.py:2423
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2414
+#: part/models.py:2428
msgid "Test Description"
msgstr "Test Açıklaması"
-#: part/models.py:2415
+#: part/models.py:2429
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2420 templates/js/translated/part.js:1745
+#: part/models.py:2434 templates/js/translated/part.js:1746
#: templates/js/translated/table_filters.js:276
msgid "Required"
msgstr "Gerekli"
-#: part/models.py:2421
+#: part/models.py:2435
msgid "Is this test required to pass?"
msgstr "Testi geçmesi için bu gerekli mi?"
-#: part/models.py:2426 templates/js/translated/part.js:1753
+#: part/models.py:2440 templates/js/translated/part.js:1754
msgid "Requires Value"
msgstr ""
-#: part/models.py:2427
+#: part/models.py:2441
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2432 templates/js/translated/part.js:1760
+#: part/models.py:2446 templates/js/translated/part.js:1761
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2433
+#: part/models.py:2447
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2444
+#: part/models.py:2458
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2480
+#: part/models.py:2494
msgid "Parameter template name must be unique"
msgstr "Parametre şablon adı benzersiz olmalıdır"
-#: part/models.py:2488
+#: part/models.py:2502
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2495
+#: part/models.py:2509
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2525
+#: part/models.py:2539
msgid "Parent Part"
msgstr ""
-#: part/models.py:2527 part/models.py:2576 part/models.py:2577
+#: part/models.py:2541 part/models.py:2590 part/models.py:2591
#: templates/InvenTree/settings/settings.html:218
msgid "Parameter Template"
msgstr "Parametre Şablonu"
-#: part/models.py:2529
+#: part/models.py:2543
msgid "Data"
msgstr ""
-#: part/models.py:2529
+#: part/models.py:2543
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2581 templates/InvenTree/settings/settings.html:227
+#: part/models.py:2595 templates/InvenTree/settings/settings.html:227
msgid "Default Value"
msgstr ""
-#: part/models.py:2582
+#: part/models.py:2596
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2616
+#: part/models.py:2630
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2619 templates/js/translated/model_renderers.js:182
+#: part/models.py:2633 templates/js/translated/model_renderers.js:182
msgid "Part ID"
msgstr ""
-#: part/models.py:2620
+#: part/models.py:2634
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2623
+#: part/models.py:2637
msgid "Part Name"
msgstr ""
-#: part/models.py:2627
+#: part/models.py:2641
msgid "Part IPN"
msgstr ""
-#: part/models.py:2628
+#: part/models.py:2642
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2645
msgid "Level"
msgstr ""
-#: part/models.py:2632
+#: part/models.py:2646
msgid "BOM level"
msgstr ""
-#: part/models.py:2692
+#: part/models.py:2707
msgid "Select parent part"
msgstr ""
-#: part/models.py:2700
+#: part/models.py:2715
msgid "Sub part"
msgstr ""
-#: part/models.py:2701
+#: part/models.py:2716
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2707
+#: part/models.py:2722
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2709 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:791 templates/js/translated/bom.js:865
+#: part/models.py:2724 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2709
+#: part/models.py:2724
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2712 part/templates/part/upload_bom.html:55
+#: part/models.py:2727 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2713
+#: part/models.py:2728
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2716
+#: part/models.py:2731
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2719
+#: part/models.py:2734
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2721
+#: part/models.py:2736
msgid "Checksum"
msgstr ""
-#: part/models.py:2721
+#: part/models.py:2736
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2725 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:882
+#: part/models.py:2740 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:880
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2726
+#: part/models.py:2741
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:2731 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:874
+#: part/models.py:2746 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:872
msgid "Allow Variants"
msgstr "Çeşide İzin Ver"
-#: part/models.py:2732
+#: part/models.py:2747
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:2817 stock/models.py:394
+#: part/models.py:2832 stock/models.py:446
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2826 part/models.py:2828
+#: part/models.py:2841 part/models.py:2843
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2957
+#: part/models.py:2972
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2979
+#: part/models.py:2994
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2991
+#: part/models.py:3006
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2999
+#: part/models.py:3014
msgid "Substitute part"
msgstr ""
-#: part/models.py:3010
+#: part/models.py:3025
msgid "Part 1"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3029
msgid "Part 2"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3029
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3046
+#: part/models.py:3061
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
-#: part/serializers.py:667
+#: part/serializers.py:670
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:678
+#: part/serializers.py:681
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:679
+#: part/serializers.py:682
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:684
+#: part/serializers.py:687
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:685
+#: part/serializers.py:688
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:690
+#: part/serializers.py:693
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:691
+#: part/serializers.py:694
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:699
+msgid "Copy Substitute Parts"
+msgstr ""
+
+#: part/serializers.py:700
+msgid "Copy substitute parts when duplicate BOM items"
+msgstr ""
+
+#: part/serializers.py:744
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:735
+#: part/serializers.py:745
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:762
+#: part/serializers.py:772
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:805
+#: part/serializers.py:815
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:808
+#: part/serializers.py:818
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:811
+#: part/serializers.py:821
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:820
+#: part/serializers.py:830
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:828
+#: part/serializers.py:838
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:847
+#: part/serializers.py:857
msgid "At least one BOM item is required"
msgstr ""
@@ -4496,7 +4532,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:279
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:274
msgid "BOM actions"
msgstr ""
@@ -4548,7 +4584,7 @@ msgstr ""
msgid "Top level part category"
msgstr ""
-#: part/templates/part/category.html:114 part/templates/part/category.html:205
+#: part/templates/part/category.html:114 part/templates/part/category.html:202
#: part/templates/part/category_sidebar.html:7
msgid "Subcategories"
msgstr "Alt kategoriler"
@@ -4557,55 +4593,51 @@ msgstr "Alt kategoriler"
msgid "Parts (Including subcategories)"
msgstr "Parçalar (Alt kategoriler dahil)"
-#: part/templates/part/category.html:156
-msgid "Export Part Data"
-msgstr ""
-
-#: part/templates/part/category.html:157 part/templates/part/category.html:181
-msgid "Export"
-msgstr ""
-
-#: part/templates/part/category.html:160
+#: part/templates/part/category.html:157
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:161 templates/js/translated/bom.js:365
+#: part/templates/part/category.html:158 templates/js/translated/bom.js:365
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:175
+#: part/templates/part/category.html:172
msgid "Set category"
msgstr "Kategori ayarla"
-#: part/templates/part/category.html:175
+#: part/templates/part/category.html:172
msgid "Set Category"
msgstr "Kategori Ayarla"
-#: part/templates/part/category.html:179
+#: part/templates/part/category.html:176
msgid "Print Labels"
msgstr ""
-#: part/templates/part/category.html:181
+#: part/templates/part/category.html:178
+msgid "Export"
+msgstr ""
+
+#: part/templates/part/category.html:178
msgid "Export Data"
msgstr ""
-#: part/templates/part/category.html:195
+#: part/templates/part/category.html:192
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:288
+#: part/templates/part/category.html:285
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:315
+#: part/templates/part/category.html:305
msgid "Create Part"
msgstr ""
-#: part/templates/part/category.html:318
+#: part/templates/part/category.html:308
msgid "Create another part after this one"
msgstr ""
-#: part/templates/part/category.html:319
+#: part/templates/part/category.html:309
msgid "Part created successfully"
msgstr ""
@@ -4676,155 +4708,150 @@ msgstr ""
msgid "Part Stock"
msgstr "Parça Stoku"
-#: part/templates/part/detail.html:33
-#, python-format
-msgid "Showing stock for all variants of %(full_name)s"
-msgstr ""
-
-#: part/templates/part/detail.html:43
+#: part/templates/part/detail.html:38
msgid "Part Stock Allocations"
msgstr ""
-#: part/templates/part/detail.html:60
+#: part/templates/part/detail.html:55
msgid "Part Test Templates"
msgstr "Parça Test Şablonları"
-#: part/templates/part/detail.html:65
+#: part/templates/part/detail.html:60
msgid "Add Test Template"
msgstr "Test Şablonu Ekle"
-#: part/templates/part/detail.html:122
+#: part/templates/part/detail.html:117
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:168
+#: part/templates/part/detail.html:163
msgid "Part Variants"
msgstr "Parça Çeşitleri"
-#: part/templates/part/detail.html:172
+#: part/templates/part/detail.html:167
msgid "Create new variant"
msgstr "Yeni çeşit oluştur"
-#: part/templates/part/detail.html:173
+#: part/templates/part/detail.html:168
msgid "New Variant"
msgstr "Yeni Çeşit"
-#: part/templates/part/detail.html:200
+#: part/templates/part/detail.html:195
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:237 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:52
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:241 part/templates/part/detail.html:242
+#: part/templates/part/detail.html:236 part/templates/part/detail.html:237
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:262 part/templates/part/part_sidebar.html:18
+#: part/templates/part/detail.html:257 part/templates/part/part_sidebar.html:18
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:267
+#: part/templates/part/detail.html:262
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:271 templates/js/translated/bom.js:283
+#: part/templates/part/detail.html:266 templates/js/translated/bom.js:283
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:268
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:283
+#: part/templates/part/detail.html:278
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:285 templates/js/translated/part.js:272
+#: part/templates/part/detail.html:279 templates/js/translated/part.js:272
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:287
+#: part/templates/part/detail.html:280
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:285
msgid "New BOM Item"
msgstr ""
-#: part/templates/part/detail.html:293
+#: part/templates/part/detail.html:286
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:306
+#: part/templates/part/detail.html:299
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:323
+#: part/templates/part/detail.html:316
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:348
+#: part/templates/part/detail.html:341
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:363
+#: part/templates/part/detail.html:356
msgid "Part Suppliers"
msgstr "Parça Tedarikçileri"
-#: part/templates/part/detail.html:391
+#: part/templates/part/detail.html:384
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:407
+#: part/templates/part/detail.html:400
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:589
+#: part/templates/part/detail.html:582
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:590
+#: part/templates/part/detail.html:583
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:639
+#: part/templates/part/detail.html:632
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:696
+#: part/templates/part/detail.html:689
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:704
+#: part/templates/part/detail.html:697
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:801
+#: part/templates/part/detail.html:794
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:858
+#: part/templates/part/detail.html:844
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:971
+#: part/templates/part/detail.html:957
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:983
+#: part/templates/part/detail.html:969
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:995
+#: part/templates/part/detail.html:981
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1084
+#: part/templates/part/detail.html:1070
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4969,7 +4996,7 @@ msgstr ""
#: templates/js/translated/company.js:508
#: templates/js/translated/company.js:765
#: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:533 templates/js/translated/part.js:610
+#: templates/js/translated/part.js:534 templates/js/translated/part.js:611
msgid "Inactive"
msgstr "Pasif"
@@ -4983,7 +5010,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr "Bu parça %(link)s parçasının bir çeşididir"
-#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2356
+#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2444
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5000,12 +5027,12 @@ msgstr "Satış Emirleri için Gerekli"
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:903
+#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:901
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1154
-#: templates/js/translated/part.js:1327
+#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1155
+#: templates/js/translated/part.js:1328
msgid "Building"
msgstr ""
@@ -5057,7 +5084,7 @@ msgid "Total Cost"
msgstr "Toplam Maliyet"
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:857
+#: templates/js/translated/bom.js:855
msgid "No supplier pricing available"
msgstr ""
@@ -5177,7 +5204,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:851
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849
msgid "Supplier Cost"
msgstr ""
@@ -5199,7 +5226,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1390
+#: part/templates/part/prices.html:215 part/views.py:1325
msgid "Add Internal Price Break"
msgstr ""
@@ -5219,9 +5246,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr "Aşağıdaki parçalara kategori ayarla"
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813
-#: templates/js/translated/part.js:497 templates/js/translated/part.js:1144
-#: templates/js/translated/part.js:1331
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811
+#: templates/js/translated/part.js:498 templates/js/translated/part.js:1145
+#: templates/js/translated/part.js:1332
msgid "No Stock"
msgstr "Stok Yok"
@@ -5275,100 +5302,100 @@ msgstr "Yeni parça çeşidi oluştur"
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:172
+#: part/templatetags/inventree_extras.py:174
msgid "Unknown database"
msgstr ""
-#: part/views.py:90
+#: part/views.py:88
msgid "Set Part Category"
msgstr ""
-#: part/views.py:140
+#: part/views.py:138
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:212
+#: part/views.py:210
msgid "Match References"
msgstr ""
-#: part/views.py:509
+#: part/views.py:507
msgid "None"
msgstr "Hiçbiri"
-#: part/views.py:568
+#: part/views.py:566
msgid "Part QR Code"
msgstr ""
-#: part/views.py:670
+#: part/views.py:668
msgid "Select Part Image"
msgstr ""
-#: part/views.py:696
+#: part/views.py:694
msgid "Updated part image"
msgstr ""
-#: part/views.py:699
+#: part/views.py:697
msgid "Part image not found"
msgstr ""
-#: part/views.py:850
+#: part/views.py:785
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:857
+#: part/views.py:792
msgid "Part was deleted"
msgstr ""
-#: part/views.py:866
+#: part/views.py:801
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1015
+#: part/views.py:950
msgid "Create Part Parameter Template"
msgstr "Parça Parametre Şablonu Oluştur"
-#: part/views.py:1025
+#: part/views.py:960
msgid "Edit Part Parameter Template"
msgstr "Parça Parametre Şablonu Düzenle"
-#: part/views.py:1032
+#: part/views.py:967
msgid "Delete Part Parameter Template"
msgstr "Parça Parametre Şablonu Sil"
-#: part/views.py:1091 templates/js/translated/part.js:315
+#: part/views.py:1026 templates/js/translated/part.js:315
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1129
+#: part/views.py:1064
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1135
+#: part/views.py:1070
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1144
+#: part/views.py:1079
msgid "Create Category Parameter Template"
msgstr "Kategori Parametre Şablonu Oluştur"
-#: part/views.py:1245
+#: part/views.py:1180
msgid "Edit Category Parameter Template"
msgstr "Kategori Parametre Şablonu Düzenle"
-#: part/views.py:1301
+#: part/views.py:1236
msgid "Delete Category Parameter Template"
msgstr "Kategori Parametre Şablonu Sil"
-#: part/views.py:1323
+#: part/views.py:1258
msgid "Added new price break"
msgstr ""
-#: part/views.py:1399
+#: part/views.py:1334
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1407
+#: part/views.py:1342
msgid "Delete Internal Price Break"
msgstr ""
@@ -5574,12 +5601,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:556 stock/templates/stock/item_base.html:151
-#: templates/js/translated/build.js:373 templates/js/translated/build.js:521
-#: templates/js/translated/build.js:919 templates/js/translated/build.js:1295
+#: stock/models.py:608 stock/templates/stock/item_base.html:151
+#: templates/js/translated/build.js:374 templates/js/translated/build.js:522
+#: templates/js/translated/build.js:920 templates/js/translated/build.js:1296
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:99 templates/js/translated/order.js:2062
-#: templates/js/translated/order.js:2151 templates/js/translated/stock.js:423
+#: templates/js/translated/order.js:99 templates/js/translated/order.js:2150
+#: templates/js/translated/order.js:2239 templates/js/translated/stock.js:422
msgid "Serial Number"
msgstr "Seri Numara"
@@ -5588,19 +5615,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:2052
+#: stock/models.py:2104
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:2058
+#: stock/models.py:2110
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:50
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:924 templates/js/translated/stock.js:2657
+#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2613
msgid "Date"
msgstr ""
@@ -5618,26 +5645,26 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756
-#: templates/js/translated/stock.js:2910
+#: templates/js/translated/stock.js:542 templates/js/translated/stock.js:712
+#: templates/js/translated/stock.js:2866
msgid "Serial"
msgstr "Seri No"
-#: stock/api.py:501
+#: stock/api.py:503
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:508
+#: stock/api.py:510
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:533
+#: stock/api.py:535
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/forms.py:74 stock/forms.py:198 stock/models.py:613
+#: stock/forms.py:74 stock/forms.py:198 stock/models.py:665
#: stock/templates/stock/item_base.html:188
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1791
msgid "Expiry Date"
msgstr ""
@@ -5677,228 +5704,228 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr "Kurulu stok kalemlerinin kaldırılmasını onayla"
-#: stock/models.py:62 stock/models.py:650
+#: stock/models.py:62 stock/models.py:702
#: stock/templates/stock/item_base.html:402
msgid "Owner"
msgstr ""
-#: stock/models.py:63 stock/models.py:651
+#: stock/models.py:63 stock/models.py:703
msgid "Select Owner"
msgstr ""
-#: stock/models.py:375
+#: stock/models.py:427
msgid "StockItem with this serial number already exists"
msgstr "Bu seri numarasına sahip stok kalemi zaten var"
-#: stock/models.py:411
+#: stock/models.py:463
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:421 stock/models.py:430
+#: stock/models.py:473 stock/models.py:482
msgid "Quantity must be 1 for item with a serial number"
msgstr "Seri numarası olan ögenin miktarı bir olmalı"
-#: stock/models.py:422
+#: stock/models.py:474
msgid "Serial number cannot be set if quantity greater than 1"
msgstr "Miktar birden büyük ise seri numarası ayarlanamaz"
-#: stock/models.py:444
+#: stock/models.py:496
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:450
+#: stock/models.py:502
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:457
+#: stock/models.py:509
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:500
+#: stock/models.py:552
msgid "Parent Stock Item"
msgstr "Üst Stok Kalemi"
-#: stock/models.py:509
+#: stock/models.py:561
msgid "Base part"
msgstr ""
-#: stock/models.py:517
+#: stock/models.py:569
msgid "Select a matching supplier part for this stock item"
msgstr "Bu stok kalemi için tedarikçi parçası seçin"
-#: stock/models.py:523 stock/templates/stock/location.html:16
+#: stock/models.py:575 stock/templates/stock/location.html:16
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr "Stok Konumu"
-#: stock/models.py:526
+#: stock/models.py:578
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:585
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:539 stock/templates/stock/item_base.html:277
+#: stock/models.py:591 stock/templates/stock/item_base.html:277
msgid "Installed In"
msgstr ""
-#: stock/models.py:542
+#: stock/models.py:594
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:558
+#: stock/models.py:610
msgid "Serial number for this item"
msgstr "Bu öge için seri numarası"
-#: stock/models.py:572
+#: stock/models.py:624
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:576
+#: stock/models.py:628
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:585
+#: stock/models.py:637
msgid "Source Build"
msgstr ""
-#: stock/models.py:587
+#: stock/models.py:639
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:598
+#: stock/models.py:650
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:601
+#: stock/models.py:653
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:607
+#: stock/models.py:659
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:614
+#: stock/models.py:666
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:627
+#: stock/models.py:679
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:627
+#: stock/models.py:679
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:637 stock/templates/stock/item.html:121
+#: stock/models.py:689 stock/templates/stock/item.html:121
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:646
+#: stock/models.py:698
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1171
+#: stock/models.py:1223
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1177
+#: stock/models.py:1229
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1183
+#: stock/models.py:1235
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1186
+#: stock/models.py:1238
msgid "Serial numbers must be a list of integers"
msgstr "Seri numaraları tam sayı listesi olmalı"
-#: stock/models.py:1189
+#: stock/models.py:1241
msgid "Quantity does not match serial numbers"
msgstr "Miktar seri numaları ile eşleşmiyor"
-#: stock/models.py:1196
+#: stock/models.py:1248
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr "Seri numaraları zaten mevcut: {exists}"
-#: stock/models.py:1267
+#: stock/models.py:1319
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1270
+#: stock/models.py:1322
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1273
+#: stock/models.py:1325
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1276
+#: stock/models.py:1328
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1279
+#: stock/models.py:1331
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1282
+#: stock/models.py:1334
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1289 stock/serializers.py:832
+#: stock/models.py:1341 stock/serializers.py:832
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1293
+#: stock/models.py:1345
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1297
+#: stock/models.py:1349
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1301
+#: stock/models.py:1353
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1473
+#: stock/models.py:1525
msgid "StockItem cannot be moved as it is not in stock"
msgstr "Stok kalemi stokta olmadığı için taşınamaz"
-#: stock/models.py:1972
+#: stock/models.py:2024
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2029
+#: stock/models.py:2081
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2035
+#: stock/models.py:2087
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2053
+#: stock/models.py:2105
msgid "Test name"
msgstr ""
-#: stock/models.py:2059
+#: stock/models.py:2111
msgid "Test result"
msgstr ""
-#: stock/models.py:2065
+#: stock/models.py:2117
msgid "Test output value"
msgstr ""
-#: stock/models.py:2072
+#: stock/models.py:2124
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2078
+#: stock/models.py:2130
msgid "Test notes"
msgstr ""
@@ -5935,7 +5962,7 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:363 stock/views.py:1127
+#: stock/serializers.py:363 stock/views.py:1009
msgid "Serial numbers already exist"
msgstr "Seri numaraları zaten mevcut"
@@ -6052,11 +6079,11 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:147 templates/js/translated/stock.js:3019
+#: stock/templates/stock/item.html:147 templates/js/translated/stock.js:2975
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1479
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1435
msgid "Add Test Result"
msgstr ""
@@ -6070,7 +6097,7 @@ msgstr ""
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:46 templates/stock_table.html:24
+#: stock/templates/stock/item_base.html:46 templates/stock_table.html:21
msgid "Scan to Location"
msgstr "Konuma Tara"
@@ -6083,15 +6110,15 @@ msgid "Stock adjustment actions"
msgstr "Stok ayarlama işlemleri"
#: stock/templates/stock/item_base.html:69
-#: stock/templates/stock/location.html:52 templates/stock_table.html:50
+#: stock/templates/stock/location.html:52 templates/stock_table.html:47
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48
+#: stock/templates/stock/item_base.html:72 templates/stock_table.html:45
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49
+#: stock/templates/stock/item_base.html:75 templates/stock_table.html:46
msgid "Remove stock"
msgstr ""
@@ -6100,11 +6127,11 @@ msgid "Serialize stock"
msgstr "Stoku seri numarala"
#: stock/templates/stock/item_base.html:82
-#: stock/templates/stock/location.html:58 templates/stock_table.html:51
+#: stock/templates/stock/location.html:58 templates/stock_table.html:48
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85 templates/stock_table.html:54
+#: stock/templates/stock/item_base.html:85 templates/stock_table.html:51
msgid "Assign to customer"
msgstr ""
@@ -6181,7 +6208,7 @@ msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:201
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1807
msgid "Last Updated"
msgstr ""
@@ -6218,7 +6245,7 @@ msgid "This stock item is serialized - it has a unique serial number and the qua
msgstr "Bu stok kalemi seri numaları - Benzersiz bir seri numarasına sahip ve miktarı ayarlanamaz."
#: stock/templates/stock/item_base.html:296
-#: templates/js/translated/build.js:1317
+#: templates/js/translated/build.js:1318
msgid "No location set"
msgstr "Konum ayarlanmadı"
@@ -6320,11 +6347,11 @@ msgstr "Alt konumlar"
msgid "Stock Locations"
msgstr "Stok Konumları"
-#: stock/templates/stock/location.html:185 templates/stock_table.html:30
+#: stock/templates/stock/location.html:185 templates/stock_table.html:27
msgid "Printing Actions"
msgstr "Yazdırma İşlemleri"
-#: stock/templates/stock/location.html:189 templates/stock_table.html:34
+#: stock/templates/stock/location.html:189 templates/stock_table.html:31
msgid "Print labels"
msgstr "Etiketleri yazdır"
@@ -6348,7 +6375,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:749
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:631
msgid "Convert Stock Item"
msgstr "Stok Kalemine Dönüştür"
@@ -6369,95 +6396,95 @@ msgstr "Bu işlem kolayca geri alınamaz"
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181 templates/js/translated/stock.js:139
+#: stock/views.py:152 templates/js/translated/stock.js:138
msgid "Edit Stock Location"
msgstr "Stok konumunu düzenle"
-#: stock/views.py:288 stock/views.py:728 stock/views.py:854 stock/views.py:1136
+#: stock/views.py:259 stock/views.py:610 stock/views.py:736 stock/views.py:1018
msgid "Owner is required (ownership control is enabled)"
msgstr "Sahip gerekli (sahip kontrolü etkinleştirildi)"
-#: stock/views.py:303
+#: stock/views.py:274
msgid "Stock Location QR code"
msgstr "Stok Konumu QR Kodu"
-#: stock/views.py:322
+#: stock/views.py:293
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:302
msgid "Specify a valid location"
msgstr "Geçerli bir konum belirtiniz"
-#: stock/views.py:342
+#: stock/views.py:313
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:353
+#: stock/views.py:324
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:370
+#: stock/views.py:341
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:371
+#: stock/views.py:342
msgid "Check the confirmation box"
msgstr "Onay kutusunu işaretleyin"
-#: stock/views.py:475
+#: stock/views.py:357
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:500
+#: stock/views.py:382
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:597 templates/js/translated/stock.js:1074
+#: stock/views.py:479 templates/js/translated/stock.js:1030
msgid "Confirm stock adjustment"
msgstr "Stok ayarlamasını onayla"
-#: stock/views.py:608
+#: stock/views.py:490
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:630 templates/js/translated/stock.js:332
+#: stock/views.py:512 templates/js/translated/stock.js:331
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:780
+#: stock/views.py:662
msgid "Create new Stock Location"
msgstr "Yeni Stok konumu oluştur"
-#: stock/views.py:881
+#: stock/views.py:763
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1023 templates/js/translated/stock.js:312
+#: stock/views.py:905 templates/js/translated/stock.js:311
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1105
+#: stock/views.py:987
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1205
+#: stock/views.py:1087
msgid "Delete Stock Location"
msgstr "Stok Konumunu Sil"
-#: stock/views.py:1218
+#: stock/views.py:1100
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1229
+#: stock/views.py:1111
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1236
+#: stock/views.py:1118
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1245
+#: stock/views.py:1127
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -7381,14 +7408,14 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1335
+#: templates/js/translated/bom.js:1340
msgid "Required Quantity"
msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:804 templates/js/translated/build.js:1411
-#: templates/js/translated/build.js:2057
+#: templates/js/translated/bom.js:802 templates/js/translated/build.js:1412
+#: templates/js/translated/build.js:2110
#: templates/js/translated/table_filters.js:178
msgid "Available"
msgstr "Mevcut"
@@ -7580,7 +7607,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:982
msgid "Remove stock item"
msgstr ""
@@ -7635,12 +7662,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286
-#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518
+#: templates/js/translated/order.js:429 templates/js/translated/tables.js:53
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519
+#: templates/js/translated/order.js:430
msgid "Select file format"
msgstr ""
@@ -7716,275 +7743,307 @@ msgstr ""
msgid "Edit BOM Item Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:741
+#: templates/js/translated/bom.js:739
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:745 templates/js/translated/build.js:1393
+#: templates/js/translated/bom.js:743 templates/js/translated/build.js:1394
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:750
+#: templates/js/translated/bom.js:748
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:822
+#: templates/js/translated/bom.js:820
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:837
+#: templates/js/translated/bom.js:835
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:844
+#: templates/js/translated/bom.js:842
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:893 templates/js/translated/bom.js:982
+#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:953
+#: templates/js/translated/bom.js:951
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:955
+#: templates/js/translated/bom.js:953
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:957
+#: templates/js/translated/bom.js:955
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138
+#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:961 templates/js/translated/bom.js:1121
+#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1060 templates/js/translated/build.js:1137
+#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1138
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1116
+#: templates/js/translated/bom.js:1121
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:1318 templates/js/translated/build.js:1377
+#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1378
msgid "Required Part"
msgstr "Gerekli Parça"
-#: templates/js/translated/bom.js:1340
+#: templates/js/translated/bom.js:1345
msgid "Inherited from parent BOM"
msgstr ""
-#: templates/js/translated/build.js:85
+#: templates/js/translated/build.js:86
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:119
+#: templates/js/translated/build.js:120
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:140
+#: templates/js/translated/build.js:141
msgid "Build order is ready to be completed"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:146
msgid "Build Order is incomplete"
msgstr "Yapım işi emri eksik"
-#: templates/js/translated/build.js:173
+#: templates/js/translated/build.js:174
msgid "Complete Build Order"
msgstr "Tamamlanmış Yapım İşi Emri"
-#: templates/js/translated/build.js:214 templates/js/translated/stock.js:92
-#: templates/js/translated/stock.js:181
+#: templates/js/translated/build.js:215 templates/js/translated/stock.js:91
+#: templates/js/translated/stock.js:180
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:216 templates/js/translated/stock.js:94
-#: templates/js/translated/stock.js:183
+#: templates/js/translated/build.js:217 templates/js/translated/stock.js:93
+#: templates/js/translated/stock.js:182
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/build.js:225
+#: templates/js/translated/build.js:226
msgid "The Bill of Materials contains trackable parts"
msgstr "Bu Malzeme Listesi takip edilebilir parçalar içeriyor"
-#: templates/js/translated/build.js:226
+#: templates/js/translated/build.js:227
msgid "Build outputs must be generated individually"
msgstr ""
-#: templates/js/translated/build.js:234
+#: templates/js/translated/build.js:235
msgid "Trackable parts can have serial numbers specified"
msgstr "Takip edilebilir parçaların seri numaraları belirtilmiş olmalı"
-#: templates/js/translated/build.js:235
+#: templates/js/translated/build.js:236
msgid "Enter serial numbers to generate multiple single build outputs"
msgstr "Birden çok tek yapım işi çıktısı oluşturmak için seri numaraları girin"
-#: templates/js/translated/build.js:242
+#: templates/js/translated/build.js:243
msgid "Create Build Output"
msgstr "Yapım İşi Çıktısı Oluştur"
-#: templates/js/translated/build.js:273
+#: templates/js/translated/build.js:274
msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:284
+#: templates/js/translated/build.js:285
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:293
+#: templates/js/translated/build.js:294
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:301
+#: templates/js/translated/build.js:302
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:324
+#: templates/js/translated/build.js:325
msgid "Are you sure you wish to unallocate stock items from this build?"
msgstr ""
-#: templates/js/translated/build.js:342
+#: templates/js/translated/build.js:343
msgid "Unallocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:360 templates/js/translated/build.js:508
+#: templates/js/translated/build.js:361 templates/js/translated/build.js:509
msgid "Select Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:361 templates/js/translated/build.js:509
+#: templates/js/translated/build.js:362 templates/js/translated/build.js:510
msgid "At least one build output must be selected"
msgstr ""
-#: templates/js/translated/build.js:415 templates/js/translated/build.js:563
+#: templates/js/translated/build.js:416 templates/js/translated/build.js:564
msgid "Output"
msgstr ""
-#: templates/js/translated/build.js:431
+#: templates/js/translated/build.js:432
msgid "Complete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:576
+#: templates/js/translated/build.js:577
msgid "Delete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:665
+#: templates/js/translated/build.js:666
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:703 templates/js/translated/order.js:1965
+#: templates/js/translated/build.js:704 templates/js/translated/order.js:2053
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:885
+#: templates/js/translated/build.js:886
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1334 templates/js/translated/build.js:2068
-#: templates/js/translated/order.js:2099
+#: templates/js/translated/build.js:1335 templates/js/translated/build.js:2121
+#: templates/js/translated/order.js:2187
msgid "Edit stock allocation"
msgstr "Stok tahsisini düzenle"
-#: templates/js/translated/build.js:1336 templates/js/translated/build.js:2069
-#: templates/js/translated/order.js:2100
+#: templates/js/translated/build.js:1337 templates/js/translated/build.js:2122
+#: templates/js/translated/order.js:2188
msgid "Delete stock allocation"
msgstr "Stok tahsisini sil"
-#: templates/js/translated/build.js:1354
+#: templates/js/translated/build.js:1355
msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:1364
+#: templates/js/translated/build.js:1365
msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:1389
+#: templates/js/translated/build.js:1390
msgid "Substitute parts available"
msgstr ""
-#: templates/js/translated/build.js:1406
+#: templates/js/translated/build.js:1407
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1416 templates/js/translated/build.js:1656
-#: templates/js/translated/build.js:2064 templates/js/translated/order.js:2366
+#: templates/js/translated/build.js:1417 templates/js/translated/build.js:1667
+#: templates/js/translated/build.js:2117 templates/js/translated/order.js:2454
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1472 templates/js/translated/order.js:2446
+#: templates/js/translated/build.js:1473 templates/js/translated/order.js:2534
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:1476 templates/stock_table.html:53
+#: templates/js/translated/build.js:1477 templates/stock_table.html:50
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1479 templates/js/translated/order.js:2439
+#: templates/js/translated/build.js:1480 templates/js/translated/order.js:2527
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:1558 templates/js/translated/order.js:1616
-msgid "Specify stock allocation quantity"
-msgstr ""
-
-#: templates/js/translated/build.js:1629 templates/js/translated/label.js:134
-#: templates/js/translated/order.js:1667 templates/js/translated/report.js:225
+#: templates/js/translated/build.js:1519 templates/js/translated/label.js:134
+#: templates/js/translated/order.js:1755 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr "Parçaları Seçin"
-#: templates/js/translated/build.js:1630 templates/js/translated/order.js:1668
+#: templates/js/translated/build.js:1520 templates/js/translated/order.js:1756
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:1644 templates/js/translated/order.js:1682
+#: templates/js/translated/build.js:1569 templates/js/translated/order.js:1704
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:1640
+msgid "All Parts Allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:1641
+msgid "All selected parts have been fully allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:1655 templates/js/translated/order.js:1770
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1717
+#: templates/js/translated/build.js:1684 templates/js/translated/order.js:1805
msgid "Confirm stock allocation"
msgstr "Stok tahsisini onayla"
-#: templates/js/translated/build.js:1674
+#: templates/js/translated/build.js:1685
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1730
+#: templates/js/translated/build.js:1696 templates/js/translated/order.js:1818
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1757 templates/js/translated/order.js:1807
+#: templates/js/translated/build.js:1768 templates/js/translated/order.js:1895
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1875
+#: templates/js/translated/build.js:1865
+msgid "Automatic Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1866
+msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
+msgstr ""
+
+#: templates/js/translated/build.js:1868
+msgid "If a location is specifed, stock will only be allocated from that location"
+msgstr ""
+
+#: templates/js/translated/build.js:1869
+msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
+msgstr ""
+
+#: templates/js/translated/build.js:1870
+msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
+msgstr ""
+
+#: templates/js/translated/build.js:1890
+msgid "Allocate Stock Items"
+msgstr ""
+
+#: templates/js/translated/build.js:1928
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1892 templates/js/translated/part.js:1235
-#: templates/js/translated/part.js:1646 templates/js/translated/stock.js:1643
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/build.js:1945 templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1647 templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:2567
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1912
+#: templates/js/translated/build.js:1965
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1976 templates/js/translated/stock.js:2823
+#: templates/js/translated/build.js:2029 templates/js/translated/stock.js:2779
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1988
+#: templates/js/translated/build.js:2041
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:2045
+#: templates/js/translated/build.js:2098
msgid "No parts allocated for"
msgstr ""
@@ -8049,34 +8108,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:517
-#: templates/js/translated/part.js:602
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:518
+#: templates/js/translated/part.js:603
msgid "Template part"
msgstr "Şablon Parça"
#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:521
-#: templates/js/translated/part.js:606
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:522
+#: templates/js/translated/part.js:607
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:696
+#: templates/js/translated/company.js:631 templates/js/translated/part.js:697
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:738
+#: templates/js/translated/company.js:668 templates/js/translated/part.js:739
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:739
+#: templates/js/translated/company.js:669 templates/js/translated/part.js:740
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:756
+#: templates/js/translated/company.js:688 templates/js/translated/part.js:757
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:768
+#: templates/js/translated/company.js:699 templates/js/translated/part.js:769
msgid "Delete Parameter"
msgstr ""
@@ -8085,12 +8144,12 @@ msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:429
+#: templates/js/translated/filters.js:441
msgid "true"
msgstr "doğru"
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:430
+#: templates/js/translated/filters.js:442
msgid "false"
msgstr "yanlış"
@@ -8098,19 +8157,23 @@ msgstr "yanlış"
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:286
+#: templates/js/translated/filters.js:288
+msgid "Download data"
+msgstr ""
+
+#: templates/js/translated/filters.js:291
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:290
+#: templates/js/translated/filters.js:295
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:293
+#: templates/js/translated/filters.js:298
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:338
+#: templates/js/translated/filters.js:350
msgid "Create filter"
msgstr ""
@@ -8181,7 +8244,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1050
+#: templates/js/translated/stock.js:1006
msgid "Select Stock Items"
msgstr ""
@@ -8354,206 +8417,214 @@ msgstr ""
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:366
+#: templates/js/translated/order.js:426
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:460
+#: templates/js/translated/order.js:520
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:461
+#: templates/js/translated/order.js:521
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:481 templates/js/translated/order.js:580
+#: templates/js/translated/order.js:541 templates/js/translated/order.js:640
msgid "Add batch code"
msgstr ""
-#: templates/js/translated/order.js:487 templates/js/translated/order.js:591
+#: templates/js/translated/order.js:547 templates/js/translated/order.js:651
msgid "Add serial numbers"
msgstr ""
-#: templates/js/translated/order.js:499
+#: templates/js/translated/order.js:559
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:563 templates/js/translated/stock.js:2263
+#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2219
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:652
+#: templates/js/translated/order.js:712
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:653
+#: templates/js/translated/order.js:713
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:655
+#: templates/js/translated/order.js:715
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/order.js:674
+#: templates/js/translated/order.js:734
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:675
+#: templates/js/translated/order.js:735
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:865 templates/js/translated/part.js:809
+#: templates/js/translated/order.js:925 templates/js/translated/part.js:810
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:890 templates/js/translated/order.js:1338
+#: templates/js/translated/order.js:950 templates/js/translated/order.js:1426
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:1018 templates/js/translated/order.js:2496
+#: templates/js/translated/order.js:1074 templates/js/translated/order.js:2585
+msgid "Duplicate Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:1104 templates/js/translated/order.js:2607
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1030 templates/js/translated/order.js:2507
+#: templates/js/translated/order.js:1117 templates/js/translated/order.js:2618
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:1073
+#: templates/js/translated/order.js:1160
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:1100 templates/js/translated/order.js:2255
+#: templates/js/translated/order.js:1187 templates/js/translated/order.js:2343
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:1154 templates/js/translated/order.js:2280
-#: templates/js/translated/part.js:1863 templates/js/translated/part.js:2074
+#: templates/js/translated/order.js:1241 templates/js/translated/order.js:2368
+#: templates/js/translated/part.js:1864 templates/js/translated/part.js:2075
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1169 templates/js/translated/order.js:2296
+#: templates/js/translated/order.js:1256 templates/js/translated/order.js:2384
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:1210 templates/js/translated/order.js:2338
-#: templates/js/translated/part.js:918
+#: templates/js/translated/order.js:1297 templates/js/translated/order.js:2426
+#: templates/js/translated/part.js:919
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:1269 templates/js/translated/part.js:964
+#: templates/js/translated/order.js:1356 templates/js/translated/part.js:965
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1273 templates/js/translated/order.js:2452
+#: templates/js/translated/order.js:1360 templates/js/translated/order.js:2540
+msgid "Duplicate line item"
+msgstr ""
+
+#: templates/js/translated/order.js:1361 templates/js/translated/order.js:2541
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:1274 templates/js/translated/order.js:2456
+#: templates/js/translated/order.js:1362 templates/js/translated/order.js:2545
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1314
+#: templates/js/translated/order.js:1402
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1352
+#: templates/js/translated/order.js:1440
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1439
+#: templates/js/translated/order.js:1527
msgid "Edit shipment"
msgstr ""
-#: templates/js/translated/order.js:1442
+#: templates/js/translated/order.js:1530
msgid "Complete shipment"
msgstr ""
-#: templates/js/translated/order.js:1447
+#: templates/js/translated/order.js:1535
msgid "Delete shipment"
msgstr ""
-#: templates/js/translated/order.js:1467
+#: templates/js/translated/order.js:1555
msgid "Edit Shipment"
msgstr ""
-#: templates/js/translated/order.js:1484
+#: templates/js/translated/order.js:1572
msgid "Delete Shipment"
msgstr ""
-#: templates/js/translated/order.js:1518
+#: templates/js/translated/order.js:1606
msgid "No matching shipments found"
msgstr ""
-#: templates/js/translated/order.js:1528
+#: templates/js/translated/order.js:1616
msgid "Shipment Reference"
msgstr ""
-#: templates/js/translated/order.js:1552
+#: templates/js/translated/order.js:1640
msgid "Not shipped"
msgstr ""
-#: templates/js/translated/order.js:1558
+#: templates/js/translated/order.js:1646
msgid "Tracking"
msgstr ""
-#: templates/js/translated/order.js:1718
+#: templates/js/translated/order.js:1806
msgid "Allocate Stock Items to Sales Order"
msgstr ""
-#: templates/js/translated/order.js:1926
+#: templates/js/translated/order.js:2014
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:2015
+#: templates/js/translated/order.js:2103
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:2032
+#: templates/js/translated/order.js:2120
msgid "Confirm Delete Operation"
msgstr "Silme İşlemini Onayla"
-#: templates/js/translated/order.js:2033
+#: templates/js/translated/order.js:2121
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:2076 templates/js/translated/order.js:2165
-#: templates/js/translated/stock.js:1559
+#: templates/js/translated/order.js:2164 templates/js/translated/order.js:2253
+#: templates/js/translated/stock.js:1515
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/order.js:2084 templates/js/translated/order.js:2174
+#: templates/js/translated/order.js:2172 templates/js/translated/order.js:2262
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:2436
+#: templates/js/translated/order.js:2524
msgid "Allocate serial numbers"
msgstr "Seri numaralarını tahsis et"
-#: templates/js/translated/order.js:2442
+#: templates/js/translated/order.js:2530
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:2449 templates/js/translated/order.js:2616
+#: templates/js/translated/order.js:2537 templates/js/translated/order.js:2727
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:2460
+#: templates/js/translated/order.js:2549
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:2463
+#: templates/js/translated/order.js:2552
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:2522
+#: templates/js/translated/order.js:2633
msgid "Allocate Serial Numbers"
msgstr "Seri Numaralarını Tahsis Et"
-#: templates/js/translated/order.js:2624
+#: templates/js/translated/order.js:2735
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:2638
+#: templates/js/translated/order.js:2749
msgid "No matching line items"
msgstr ""
@@ -8677,117 +8748,117 @@ msgstr ""
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:481
+#: templates/js/translated/part.js:482
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:509 templates/js/translated/part.js:594
+#: templates/js/translated/part.js:510 templates/js/translated/part.js:595
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:513 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:514 templates/js/translated/part.js:599
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:525
+#: templates/js/translated/part.js:526
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:529
+#: templates/js/translated/part.js:530
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:644
+#: templates/js/translated/part.js:645
msgid "No variants found"
msgstr "Çeşit bulunamadı"
-#: templates/js/translated/part.js:1034
+#: templates/js/translated/part.js:1035
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1058
+#: templates/js/translated/part.js:1059
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1125 templates/js/translated/part.js:1385
+#: templates/js/translated/part.js:1126 templates/js/translated/part.js:1386
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1295
+#: templates/js/translated/part.js:1296
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1318
+#: templates/js/translated/part.js:1319
#: templates/js/translated/table_filters.js:425
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1409 templates/js/translated/part.js:1581
-#: templates/js/translated/stock.js:2572
+#: templates/js/translated/part.js:1410 templates/js/translated/part.js:1582
+#: templates/js/translated/stock.js:2528
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1425
+#: templates/js/translated/part.js:1426
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1600 templates/js/translated/stock.js:2591
+#: templates/js/translated/part.js:1601 templates/js/translated/stock.js:2547
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1664
+#: templates/js/translated/part.js:1665
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1678 templates/js/translated/stock.js:2635
+#: templates/js/translated/part.js:1679 templates/js/translated/stock.js:2591
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1722
+#: templates/js/translated/part.js:1723
msgid "No test templates matching query"
msgstr "Sorgu ile eşleşen test şablonu bulunamadı"
-#: templates/js/translated/part.js:1773 templates/js/translated/stock.js:1270
+#: templates/js/translated/part.js:1774 templates/js/translated/stock.js:1226
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1774 templates/js/translated/stock.js:1271
-#: templates/js/translated/stock.js:1517
+#: templates/js/translated/part.js:1775 templates/js/translated/stock.js:1227
+#: templates/js/translated/stock.js:1473
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1780
+#: templates/js/translated/part.js:1781
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1802
+#: templates/js/translated/part.js:1803
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1816
+#: templates/js/translated/part.js:1817
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1841
+#: templates/js/translated/part.js:1842
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1896
+#: templates/js/translated/part.js:1897
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1897
+#: templates/js/translated/part.js:1898
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1998
+#: templates/js/translated/part.js:1999
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:2017
+#: templates/js/translated/part.js:2018
msgid "Single Price Difference"
msgstr ""
@@ -8861,368 +8932,356 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:102
+#: templates/js/translated/stock.js:101
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:111
+#: templates/js/translated/stock.js:110
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:154
+#: templates/js/translated/stock.js:153
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:194
+#: templates/js/translated/stock.js:193
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:233
+#: templates/js/translated/stock.js:232
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/stock.js:238
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:381
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:395
+#: templates/js/translated/stock.js:394
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:420
+#: templates/js/translated/stock.js:419
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425
+#: templates/js/translated/stock.js:423 templates/js/translated/stock.js:424
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:441
+#: templates/js/translated/stock.js:440
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:461
+#: templates/js/translated/stock.js:460
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:470
+#: templates/js/translated/stock.js:469
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:515
-msgid "Export Stock"
-msgstr ""
-
-#: templates/js/translated/stock.js:526
-msgid "Include Sublocations"
-msgstr ""
-
-#: templates/js/translated/stock.js:527
-msgid "Include stock items in sublocations"
-msgstr ""
-
-#: templates/js/translated/stock.js:636
+#: templates/js/translated/stock.js:592
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:637
+#: templates/js/translated/stock.js:593
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:714
+#: templates/js/translated/stock.js:670
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:715
+#: templates/js/translated/stock.js:671
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:717
+#: templates/js/translated/stock.js:673
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:718
+#: templates/js/translated/stock.js:674
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:804
+#: templates/js/translated/stock.js:760
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:805
+#: templates/js/translated/stock.js:761
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:900
+#: templates/js/translated/stock.js:856
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:901
+#: templates/js/translated/stock.js:857
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:907
+#: templates/js/translated/stock.js:863
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:908
+#: templates/js/translated/stock.js:864
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:912
+#: templates/js/translated/stock.js:868
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:913
+#: templates/js/translated/stock.js:869
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:917
+#: templates/js/translated/stock.js:873
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:918 users/models.py:213
+#: templates/js/translated/stock.js:874 users/models.py:213
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:922
+#: templates/js/translated/stock.js:878
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1011
+#: templates/js/translated/stock.js:967
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1011
+#: templates/js/translated/stock.js:967
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1051
+#: templates/js/translated/stock.js:1007
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1209
+#: templates/js/translated/stock.js:1165
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1211
+#: templates/js/translated/stock.js:1167
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1216
+#: templates/js/translated/stock.js:1172
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1263
+#: templates/js/translated/stock.js:1219
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1266
+#: templates/js/translated/stock.js:1222
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1292
+#: templates/js/translated/stock.js:1248
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1348
+#: templates/js/translated/stock.js:1304
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1500
+#: templates/js/translated/stock.js:1456
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1522
+#: templates/js/translated/stock.js:1478
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1551
+#: templates/js/translated/stock.js:1507
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1511
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1563
+#: templates/js/translated/stock.js:1519
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1569
+#: templates/js/translated/stock.js:1525
msgid "No stock location set"
msgstr "Stok konumu ayarlanmadı"
-#: templates/js/translated/stock.js:1727
+#: templates/js/translated/stock.js:1683
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1732
+#: templates/js/translated/stock.js:1688
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1691
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1739
+#: templates/js/translated/stock.js:1695
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1741
+#: templates/js/translated/stock.js:1697
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1747
+#: templates/js/translated/stock.js:1703
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1749
+#: templates/js/translated/stock.js:1705
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1751
+#: templates/js/translated/stock.js:1707
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1756
+#: templates/js/translated/stock.js:1712
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1763
+#: templates/js/translated/stock.js:1719
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1765
+#: templates/js/translated/stock.js:1721
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1767
+#: templates/js/translated/stock.js:1723
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1771
+#: templates/js/translated/stock.js:1727
#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1821
+#: templates/js/translated/stock.js:1777
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1903
+#: templates/js/translated/stock.js:1859
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1941
+#: templates/js/translated/stock.js:1897
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1962 templates/js/translated/stock.js:2010
+#: templates/js/translated/stock.js:1918 templates/js/translated/stock.js:1966
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:2050
+#: templates/js/translated/stock.js:2006
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:2077
+#: templates/js/translated/stock.js:2033
msgid "locations"
msgstr "konumlar"
-#: templates/js/translated/stock.js:2079
+#: templates/js/translated/stock.js:2035
msgid "Undefined location"
msgstr "Tanımsız konum"
-#: templates/js/translated/stock.js:2278
+#: templates/js/translated/stock.js:2234
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2292
+#: templates/js/translated/stock.js:2248
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2293
+#: templates/js/translated/stock.js:2249
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2472
+#: templates/js/translated/stock.js:2428
msgid "Allocated Quantity"
msgstr ""
-#: templates/js/translated/stock.js:2682
+#: templates/js/translated/stock.js:2638
msgid "Details"
msgstr "Detaylar"
-#: templates/js/translated/stock.js:2707
+#: templates/js/translated/stock.js:2663
msgid "Location no longer exists"
msgstr "Konum artık yok"
-#: templates/js/translated/stock.js:2726
+#: templates/js/translated/stock.js:2682
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2745
+#: templates/js/translated/stock.js:2701
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2763
+#: templates/js/translated/stock.js:2719
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2786
+#: templates/js/translated/stock.js:2742
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2794
+#: templates/js/translated/stock.js:2750
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2835
+#: templates/js/translated/stock.js:2791
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2836
+#: templates/js/translated/stock.js:2792
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2887
+#: templates/js/translated/stock.js:2843
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2938
+#: templates/js/translated/stock.js:2894
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2974
+#: templates/js/translated/stock.js:2930
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2975
+#: templates/js/translated/stock.js:2931
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2977
+#: templates/js/translated/stock.js:2933
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2978
+#: templates/js/translated/stock.js:2934
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2979
+#: templates/js/translated/stock.js:2935
msgid "The Stock Item is serialized and does not belong to another item"
msgstr ""
-#: templates/js/translated/stock.js:2992
+#: templates/js/translated/stock.js:2948
msgid "Select part to install"
msgstr ""
@@ -9429,60 +9488,68 @@ msgstr ""
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:368
+#: templates/js/translated/tables.js:50
+msgid "Export Table Data"
+msgstr ""
+
+#: templates/js/translated/tables.js:54
+msgid "Select File Format"
+msgstr ""
+
+#: templates/js/translated/tables.js:433
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:371
+#: templates/js/translated/tables.js:436
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:376
+#: templates/js/translated/tables.js:441
msgid "Showing all rows"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:382 templates/search_form.html:6
+#: templates/js/translated/tables.js:447 templates/search_form.html:6
#: templates/search_form.html:7
msgid "Search"
msgstr ""
-#: templates/js/translated/tables.js:385
+#: templates/js/translated/tables.js:450
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:388
+#: templates/js/translated/tables.js:453
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:391
+#: templates/js/translated/tables.js:456
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:394
+#: templates/js/translated/tables.js:459
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:397
+#: templates/js/translated/tables.js:462
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:400
+#: templates/js/translated/tables.js:465
msgid "All"
msgstr ""
@@ -9586,63 +9653,59 @@ msgstr ""
msgid "Email settings not configured"
msgstr ""
-#: templates/stock_table.html:14
-msgid "Export Stock Information"
-msgstr ""
-
-#: templates/stock_table.html:20
+#: templates/stock_table.html:17
msgid "Barcode Actions"
msgstr "Barkod İşlemleri"
-#: templates/stock_table.html:36
+#: templates/stock_table.html:33
msgid "Print test reports"
msgstr ""
-#: templates/stock_table.html:43
+#: templates/stock_table.html:40
msgid "Stock Options"
msgstr ""
-#: templates/stock_table.html:48
+#: templates/stock_table.html:45
msgid "Add to selected stock items"
msgstr ""
-#: templates/stock_table.html:49
+#: templates/stock_table.html:46
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:50
+#: templates/stock_table.html:47
msgid "Stocktake selected stock items"
msgstr ""
-#: templates/stock_table.html:51
+#: templates/stock_table.html:48
msgid "Move selected stock items"
msgstr ""
-#: templates/stock_table.html:52
+#: templates/stock_table.html:49
msgid "Merge selected stock items"
msgstr ""
-#: templates/stock_table.html:52
+#: templates/stock_table.html:49
msgid "Merge stock"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:50
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:52
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:52
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:55
msgid "Delete selected items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:55
msgid "Delete stock"
msgstr ""
diff --git a/InvenTree/locale/vi/LC_MESSAGES/django.po b/InvenTree/locale/vi/LC_MESSAGES/django.po
index 3ab5c0534c..5144350a90 100644
--- a/InvenTree/locale/vi/LC_MESSAGES/django.po
+++ b/InvenTree/locale/vi/LC_MESSAGES/django.po
@@ -1,10 +1,10 @@
-#: templates/js/translated/order.js:2090
+#: templates/js/translated/order.js:2178
msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-03-01 13:34+0000\n"
-"PO-Revision-Date: 2022-03-01 14:09\n"
+"POT-Creation-Date: 2022-03-07 04:31+0000\n"
+"PO-Revision-Date: 2022-03-07 04:47\n"
"Last-Translator: \n"
"Language-Team: Vietnamese\n"
"Language: vi_VN\n"
@@ -86,7 +86,7 @@ msgid "Duplicate serial: {sn}"
msgstr ""
#: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435
-#: stock/views.py:1101
+#: stock/views.py:983
msgid "Invalid quantity provided"
msgstr ""
@@ -114,100 +114,100 @@ msgstr ""
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:176
+#: InvenTree/models.py:185
msgid "Missing file"
msgstr ""
-#: InvenTree/models.py:177
+#: InvenTree/models.py:186
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:188 stock/models.py:2071
+#: InvenTree/models.py:197 stock/models.py:2123
#: templates/js/translated/attachment.js:119
msgid "Attachment"
msgstr ""
-#: InvenTree/models.py:189
+#: InvenTree/models.py:198
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:195 company/models.py:131 company/models.py:348
+#: InvenTree/models.py:204 company/models.py:131 company/models.py:348
#: company/models.py:564 order/models.py:127 part/models.py:860
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1346
+#: templates/js/translated/company.js:829 templates/js/translated/part.js:1347
msgid "Link"
msgstr ""
-#: InvenTree/models.py:196 build/models.py:330 part/models.py:861
-#: stock/models.py:566
+#: InvenTree/models.py:205 build/models.py:332 part/models.py:861
+#: stock/models.py:618
msgid "Link to external URL"
msgstr ""
-#: InvenTree/models.py:199 templates/js/translated/attachment.js:163
+#: InvenTree/models.py:208 templates/js/translated/attachment.js:163
msgid "Comment"
msgstr "Bình luận"
-#: InvenTree/models.py:199
+#: InvenTree/models.py:208
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1277
+#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1277
#: common/models.py:1278 common/models.py:1506 common/models.py:1507
-#: part/models.py:2303 part/models.py:2323
+#: part/models.py:2317 part/models.py:2337
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2817
+#: templates/js/translated/stock.js:2773
msgid "User"
msgstr "Người dùng"
-#: InvenTree/models.py:209
+#: InvenTree/models.py:218
msgid "upload date"
msgstr "Ngày tải lên"
-#: InvenTree/models.py:232
+#: InvenTree/models.py:241
msgid "Filename must not be empty"
msgstr "Tên tập tin không được để trống"
-#: InvenTree/models.py:255
+#: InvenTree/models.py:264
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:265
+#: InvenTree/models.py:274
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:268
+#: InvenTree/models.py:277
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:275
+#: InvenTree/models.py:284
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:282
+#: InvenTree/models.py:291
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:317
+#: InvenTree/models.py:326
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1492
+#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1492
#: company/models.py:415 label/models.py:112 part/models.py:804
-#: part/models.py:2487 plugin/models.py:40 report/models.py:181
+#: part/models.py:2501 plugin/models.py:40 report/models.py:181
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:48
#: templates/InvenTree/settings/plugin.html:125
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:319
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:567
-#: templates/js/translated/part.js:706 templates/js/translated/part.js:1653
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/company.js:641 templates/js/translated/part.js:568
+#: templates/js/translated/part.js:707 templates/js/translated/part.js:1654
+#: templates/js/translated/stock.js:2573
msgid "Name"
msgstr ""
-#: InvenTree/models.py:340 build/models.py:207
+#: InvenTree/models.py:349 build/models.py:209
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
@@ -219,28 +219,28 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:92
#: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:765
-#: templates/js/translated/build.js:1920 templates/js/translated/company.js:345
+#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763
+#: templates/js/translated/build.js:1973 templates/js/translated/company.js:345
#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:911
-#: templates/js/translated/order.js:1105 templates/js/translated/order.js:1366
-#: templates/js/translated/part.js:626 templates/js/translated/part.js:1021
-#: templates/js/translated/part.js:1106 templates/js/translated/part.js:1276
-#: templates/js/translated/part.js:1672 templates/js/translated/part.js:1741
-#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2446
-#: templates/js/translated/stock.js:2629 templates/js/translated/stock.js:2667
+#: templates/js/translated/company.js:840 templates/js/translated/order.js:971
+#: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454
+#: templates/js/translated/part.js:627 templates/js/translated/part.js:1022
+#: templates/js/translated/part.js:1107 templates/js/translated/part.js:1277
+#: templates/js/translated/part.js:1673 templates/js/translated/part.js:1742
+#: templates/js/translated/stock.js:1656 templates/js/translated/stock.js:2402
+#: templates/js/translated/stock.js:2585 templates/js/translated/stock.js:2623
msgid "Description"
msgstr "Mô tả"
-#: InvenTree/models.py:341
+#: InvenTree/models.py:350
msgid "Description (optional)"
msgstr "Mô tả (tùy chọn)"
-#: InvenTree/models.py:349
+#: InvenTree/models.py:358
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:65 part/models.py:2805
+#: InvenTree/serializers.py:65 part/models.py:2820
msgid "Must be a valid number"
msgstr ""
@@ -294,87 +294,87 @@ msgstr ""
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:665
msgid "German"
msgstr ""
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:666
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:667
msgid "English"
msgstr ""
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:668
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:669
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:670
msgid "French"
msgstr ""
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:671
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:672
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:673
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:674
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:675
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:676
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:677
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:678
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:679
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:680
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:681
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:682
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:683
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:684
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:685
msgid "Chinese"
msgstr ""
@@ -421,7 +421,7 @@ msgid "Returned"
msgstr ""
#: InvenTree/status_codes.py:143 order/models.py:997
-#: templates/js/translated/order.js:2097 templates/js/translated/order.js:2394
+#: templates/js/translated/order.js:2185 templates/js/translated/order.js:2482
msgid "Shipped"
msgstr ""
@@ -501,7 +501,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2204
+#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2160
msgid "Merged stock items"
msgstr ""
@@ -593,43 +593,43 @@ msgstr ""
msgid "System Information"
msgstr "Thông tin hệ thống"
-#: barcodes/api.py:54 barcodes/api.py:152
+#: barcodes/api.py:55 barcodes/api.py:156
msgid "Must provide barcode_data parameter"
msgstr ""
-#: barcodes/api.py:128
+#: barcodes/api.py:132
msgid "No match found for barcode data"
msgstr ""
-#: barcodes/api.py:130
+#: barcodes/api.py:134
msgid "Match found for barcode data"
msgstr ""
-#: barcodes/api.py:155
+#: barcodes/api.py:159
msgid "Must provide stockitem parameter"
msgstr ""
-#: barcodes/api.py:162
+#: barcodes/api.py:166
msgid "No matching stock item found"
msgstr ""
-#: barcodes/api.py:193
+#: barcodes/api.py:197
msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:197
+#: barcodes/api.py:201
msgid "Barcode already matches Stock Location"
msgstr ""
-#: barcodes/api.py:201
+#: barcodes/api.py:205
msgid "Barcode already matches Part"
msgstr ""
-#: barcodes/api.py:207 barcodes/api.py:219
+#: barcodes/api.py:211 barcodes/api.py:223
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: barcodes/api.py:225
+#: barcodes/api.py:229
msgid "Barcode associated with Stock Item"
msgstr ""
@@ -641,18 +641,18 @@ msgstr ""
msgid "Confirm build cancellation"
msgstr ""
-#: build/models.py:133
+#: build/models.py:135
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:139 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:676 templates/js/translated/stock.js:2422
+#: templates/js/translated/build.js:677 templates/js/translated/stock.js:2378
msgid "Build Order"
msgstr "Tạo đơn hàng"
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:140 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:92
#: order/templates/order/so_sidebar.html:13
@@ -662,41 +662,41 @@ msgstr "Tạo đơn hàng"
msgid "Build Orders"
msgstr "Tạo đơn hàng"
-#: build/models.py:198
+#: build/models.py:200
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:199 order/models.py:213 order/models.py:563
-#: order/models.py:843 part/models.py:2716
+#: build/models.py:201 order/models.py:213 order/models.py:563
+#: order/models.py:843 part/models.py:2731
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:772 templates/js/translated/build.js:1401
-#: templates/js/translated/order.js:1136 templates/js/translated/order.js:2261
+#: templates/js/translated/bom.js:770 templates/js/translated/build.js:1402
+#: templates/js/translated/order.js:1223 templates/js/translated/order.js:2349
msgid "Reference"
msgstr ""
-#: build/models.py:210
+#: build/models.py:212
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:219 build/templates/build/build_base.html:169
+#: build/models.py:221 build/templates/build/build_base.html:169
#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:222
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:225 build/templates/build/build_base.html:77
+#: build/models.py:227 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
#: order/models.py:912 order/models.py:986
#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359
-#: part/models.py:2249 part/models.py:2265 part/models.py:2284
-#: part/models.py:2301 part/models.py:2403 part/models.py:2525
-#: part/models.py:2615 part/models.py:2691 part/models.py:2998
-#: part/serializers.py:666 part/templates/part/part_app_base.html:8
+#: part/models.py:2263 part/models.py:2279 part/models.py:2298
+#: part/models.py:2315 part/models.py:2417 part/models.py:2539
+#: part/models.py:2629 part/models.py:2706 part/models.py:3013
+#: part/serializers.py:669 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: part/templates/part/upload_bom.html:52
@@ -707,231 +707,231 @@ msgstr ""
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551
-#: templates/js/translated/bom.js:730 templates/js/translated/build.js:902
-#: templates/js/translated/build.js:1270 templates/js/translated/build.js:1655
-#: templates/js/translated/build.js:1925 templates/js/translated/company.js:492
+#: templates/js/translated/bom.js:728 templates/js/translated/build.js:903
+#: templates/js/translated/build.js:1271 templates/js/translated/build.js:1666
+#: templates/js/translated/build.js:1978 templates/js/translated/company.js:492
#: templates/js/translated/company.js:749 templates/js/translated/order.js:84
-#: templates/js/translated/order.js:651 templates/js/translated/order.js:1090
-#: templates/js/translated/order.js:1693 templates/js/translated/order.js:2050
-#: templates/js/translated/order.js:2245 templates/js/translated/part.js:1006
-#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1254
-#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1657
-#: templates/js/translated/stock.js:2892 templates/js/translated/stock.js:2991
+#: templates/js/translated/order.js:711 templates/js/translated/order.js:1177
+#: templates/js/translated/order.js:1781 templates/js/translated/order.js:2138
+#: templates/js/translated/order.js:2333 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1088 templates/js/translated/part.js:1255
+#: templates/js/translated/stock.js:518 templates/js/translated/stock.js:683
+#: templates/js/translated/stock.js:890 templates/js/translated/stock.js:1613
+#: templates/js/translated/stock.js:2848 templates/js/translated/stock.js:2947
msgid "Part"
msgstr "Nguyên liệu"
-#: build/models.py:233
+#: build/models.py:235
msgid "Select part to build"
msgstr ""
-#: build/models.py:238
+#: build/models.py:240
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:242
+#: build/models.py:244
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:247 templates/js/translated/build.js:1643
-#: templates/js/translated/order.js:1681
+#: build/models.py:249 build/serializers.py:729
+#: templates/js/translated/build.js:1654 templates/js/translated/order.js:1769
msgid "Source Location"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:256
+#: build/models.py:258
msgid "Destination Location"
msgstr ""
-#: build/models.py:260
+#: build/models.py:262
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:264
+#: build/models.py:266
msgid "Build Quantity"
msgstr ""
-#: build/models.py:267
+#: build/models.py:269
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:271
+#: build/models.py:273
msgid "Completed items"
msgstr ""
-#: build/models.py:273
+#: build/models.py:275
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:277 part/templates/part/part_base.html:234
+#: build/models.py:279 part/templates/part/part_base.html:234
msgid "Build Status"
msgstr ""
-#: build/models.py:281
+#: build/models.py:283
msgid "Build status code"
msgstr ""
-#: build/models.py:285 build/serializers.py:218 order/serializers.py:272
-#: stock/models.py:570 templates/js/translated/order.js:513
+#: build/models.py:287 build/serializers.py:218 order/serializers.py:272
+#: stock/models.py:622 templates/js/translated/order.js:573
msgid "Batch Code"
msgstr ""
-#: build/models.py:289 build/serializers.py:219
+#: build/models.py:291 build/serializers.py:219
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:292 order/models.py:129 part/models.py:999
-#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1379
+#: build/models.py:294 order/models.py:129 part/models.py:999
+#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1467
msgid "Creation Date"
msgstr ""
-#: build/models.py:296 order/models.py:585
+#: build/models.py:298 order/models.py:585
msgid "Target completion date"
msgstr ""
-#: build/models.py:297
+#: build/models.py:299
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:300 order/models.py:255
-#: templates/js/translated/build.js:2002
+#: build/models.py:302 order/models.py:255
+#: templates/js/translated/build.js:2055
msgid "Completion Date"
msgstr "Ngày hoàn thành"
-#: build/models.py:306
+#: build/models.py:308
msgid "completed by"
msgstr ""
-#: build/models.py:314 templates/js/translated/build.js:1970
+#: build/models.py:316 templates/js/translated/build.js:2023
msgid "Issued by"
msgstr ""
-#: build/models.py:315
+#: build/models.py:317
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:323 build/templates/build/build_base.html:190
+#: build/models.py:325 build/templates/build/build_base.html:190
#: build/templates/build/detail.html:116 order/models.py:143
#: order/templates/order/order_base.html:170
#: order/templates/order/sales_order_base.html:182 part/models.py:1003
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1982 templates/js/translated/order.js:945
+#: templates/js/translated/build.js:2035 templates/js/translated/order.js:1005
msgid "Responsible"
msgstr ""
-#: build/models.py:324
+#: build/models.py:326
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:329 build/templates/build/detail.html:102
+#: build/models.py:331 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:564
+#: part/templates/part/part_base.html:354 stock/models.py:616
#: stock/templates/stock/item_base.html:352
msgid "External Link"
msgstr ""
-#: build/models.py:334 build/serializers.py:381
+#: build/models.py:336 build/serializers.py:381
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
#: order/models.py:147 order/models.py:845 order/models.py:1107
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/models.py:988
-#: part/templates/part/detail.html:146 part/templates/part/part_sidebar.html:57
+#: part/templates/part/detail.html:141 part/templates/part/part_sidebar.html:57
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:137 stock/forms.py:171 stock/models.py:636
-#: stock/models.py:1971 stock/models.py:2077 stock/serializers.py:332
+#: stock/forms.py:137 stock/forms.py:171 stock/models.py:688
+#: stock/models.py:2023 stock/models.py:2129 stock/serializers.py:332
#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:936
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1257
-#: templates/js/translated/order.js:1562 templates/js/translated/order.js:2419
-#: templates/js/translated/stock.js:1344 templates/js/translated/stock.js:1935
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934
+#: templates/js/translated/company.js:845 templates/js/translated/order.js:1344
+#: templates/js/translated/order.js:1650 templates/js/translated/order.js:2507
+#: templates/js/translated/stock.js:1300 templates/js/translated/stock.js:1891
msgid "Notes"
msgstr ""
-#: build/models.py:335
+#: build/models.py:337
msgid "Extra build notes"
msgstr ""
-#: build/models.py:748
+#: build/models.py:750
msgid "No build output specified"
msgstr ""
-#: build/models.py:751
+#: build/models.py:753
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:754
+#: build/models.py:756
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1060
+#: build/models.py:1162
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1069
+#: build/models.py:1171
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1079
+#: build/models.py:1181
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1085 order/models.py:1225
+#: build/models.py:1187 order/models.py:1225
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1091
+#: build/models.py:1193
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1148
+#: build/models.py:1250
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1217 stock/templates/stock/item_base.html:324
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898
+#: build/models.py:1319 stock/templates/stock/item_base.html:324
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1951
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1218
+#: build/models.py:1320
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1234 build/serializers.py:576 order/serializers.py:783
+#: build/models.py:1336 build/serializers.py:576 order/serializers.py:783
#: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635
#: stock/serializers.py:753 stock/templates/stock/item_base.html:9
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:346
-#: templates/js/translated/build.js:687 templates/js/translated/build.js:692
-#: templates/js/translated/build.js:1657 templates/js/translated/build.js:2050
-#: templates/js/translated/order.js:85 templates/js/translated/order.js:1694
-#: templates/js/translated/order.js:1949 templates/js/translated/order.js:1954
-#: templates/js/translated/order.js:2057 templates/js/translated/order.js:2147
-#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728
-#: templates/js/translated/stock.js:2753
+#: templates/js/translated/build.js:688 templates/js/translated/build.js:693
+#: templates/js/translated/build.js:1668 templates/js/translated/build.js:2103
+#: templates/js/translated/order.js:85 templates/js/translated/order.js:1782
+#: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:2235
+#: templates/js/translated/stock.js:519 templates/js/translated/stock.js:684
+#: templates/js/translated/stock.js:2709
msgid "Stock Item"
msgstr ""
-#: build/models.py:1235
+#: build/models.py:1337
msgid "Source stock item"
msgstr ""
-#: build/models.py:1247 build/serializers.py:188
+#: build/models.py:1349 build/serializers.py:188
#: build/templates/build/build_base.html:82
#: build/templates/build/detail.html:35 common/models.py:1317
#: company/forms.py:42 company/templates/company/supplier_part.html:251
#: order/models.py:836 order/models.py:1265 order/serializers.py:903
#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144
-#: part/forms.py:160 part/forms.py:176 part/models.py:2707
-#: part/templates/part/detail.html:1008 part/templates/part/detail.html:1094
+#: part/forms.py:160 part/forms.py:176 part/models.py:2722
+#: part/templates/part/detail.html:994 part/templates/part/detail.html:1080
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_build_order_base.html:114
@@ -943,32 +943,32 @@ msgstr ""
#: stock/templates/stock/item_base.html:176
#: stock/templates/stock/item_base.html:241
#: stock/templates/stock/item_base.html:249
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:780
-#: templates/js/translated/build.js:375 templates/js/translated/build.js:523
-#: templates/js/translated/build.js:714 templates/js/translated/build.js:911
-#: templates/js/translated/build.js:921 templates/js/translated/build.js:1297
-#: templates/js/translated/build.js:1658
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778
+#: templates/js/translated/build.js:376 templates/js/translated/build.js:524
+#: templates/js/translated/build.js:715 templates/js/translated/build.js:912
+#: templates/js/translated/build.js:922 templates/js/translated/build.js:1298
+#: templates/js/translated/build.js:1669
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:101 templates/js/translated/order.js:1142
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:1976
-#: templates/js/translated/order.js:2064 templates/js/translated/order.js:2153
-#: templates/js/translated/order.js:2267 templates/js/translated/part.js:906
-#: templates/js/translated/part.js:1884 templates/js/translated/part.js:2007
-#: templates/js/translated/part.js:2085 templates/js/translated/stock.js:391
-#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758
-#: templates/js/translated/stock.js:2802 templates/js/translated/stock.js:2904
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:1229
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:2064
+#: templates/js/translated/order.js:2152 templates/js/translated/order.js:2241
+#: templates/js/translated/order.js:2355 templates/js/translated/part.js:907
+#: templates/js/translated/part.js:1885 templates/js/translated/part.js:2008
+#: templates/js/translated/part.js:2086 templates/js/translated/stock.js:390
+#: templates/js/translated/stock.js:544 templates/js/translated/stock.js:714
+#: templates/js/translated/stock.js:2758 templates/js/translated/stock.js:2860
msgid "Quantity"
msgstr ""
-#: build/models.py:1248
+#: build/models.py:1350
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1256
+#: build/models.py:1358
msgid "Install into"
msgstr ""
-#: build/models.py:1257
+#: build/models.py:1359
msgid "Destination stock item"
msgstr ""
@@ -997,8 +997,8 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/serializers.py:201 build/serializers.py:596 order/models.py:280
-#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:826
-#: stock/models.py:404 stock/models.py:1180 stock/serializers.py:305
+#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:836
+#: stock/models.py:456 stock/models.py:1232 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1012,8 +1012,8 @@ msgstr ""
#: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907
#: stock/forms.py:78 stock/serializers.py:314
-#: templates/js/translated/order.js:524 templates/js/translated/stock.js:238
-#: templates/js/translated/stock.js:392
+#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237
+#: templates/js/translated/stock.js:391
msgid "Serial Numbers"
msgstr ""
@@ -1029,7 +1029,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:275 stock/api.py:549
+#: build/serializers.py:275 stock/api.py:551
msgid "The following serial numbers already exist"
msgstr ""
@@ -1041,13 +1041,13 @@ msgstr ""
#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788
#: stock/serializers.py:1029 stock/templates/stock/item_base.html:292
#: templates/js/translated/barcode.js:384
-#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:699
-#: templates/js/translated/build.js:1309 templates/js/translated/order.js:551
-#: templates/js/translated/order.js:1961 templates/js/translated/order.js:2072
-#: templates/js/translated/order.js:2080 templates/js/translated/order.js:2161
-#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564
-#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936
-#: templates/js/translated/stock.js:1807 templates/js/translated/stock.js:2694
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700
+#: templates/js/translated/build.js:1310 templates/js/translated/order.js:611
+#: templates/js/translated/order.js:2049 templates/js/translated/order.js:2160
+#: templates/js/translated/order.js:2168 templates/js/translated/order.js:2249
+#: templates/js/translated/part.js:179 templates/js/translated/stock.js:520
+#: templates/js/translated/stock.js:685 templates/js/translated/stock.js:892
+#: templates/js/translated/stock.js:1763 templates/js/translated/stock.js:2650
msgid "Location"
msgstr ""
@@ -1058,10 +1058,10 @@ msgstr ""
#: build/serializers.py:377 build/templates/build/build_base.html:142
#: build/templates/build/detail.html:63 order/models.py:579
#: order/serializers.py:290 stock/templates/stock/item_base.html:182
-#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1954
-#: templates/js/translated/order.js:656 templates/js/translated/order.js:915
-#: templates/js/translated/order.js:1371 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2771 templates/js/translated/stock.js:2920
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2007
+#: templates/js/translated/order.js:716 templates/js/translated/order.js:975
+#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2727 templates/js/translated/stock.js:2876
msgid "Status"
msgstr "Trạng thái"
@@ -1073,7 +1073,7 @@ msgstr ""
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:445 templates/js/translated/build.js:150
+#: build/serializers.py:445 templates/js/translated/build.js:151
msgid "Required stock has not been fully allocated"
msgstr ""
@@ -1085,7 +1085,7 @@ msgstr ""
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:461 templates/js/translated/build.js:154
+#: build/serializers.py:461 templates/js/translated/build.js:155
msgid "Required build quantity has not been completed"
msgstr ""
@@ -1097,8 +1097,8 @@ msgstr ""
msgid "No build outputs have been created for this build order"
msgstr ""
-#: build/serializers.py:501 build/serializers.py:550 part/models.py:2831
-#: part/models.py:2990
+#: build/serializers.py:501 build/serializers.py:550 part/models.py:2846
+#: part/models.py:3005
msgid "BOM Item"
msgstr ""
@@ -1135,6 +1135,26 @@ msgstr ""
msgid "Allocation items must be provided"
msgstr ""
+#: build/serializers.py:730
+msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
+msgstr ""
+
+#: build/serializers.py:735
+msgid "Interchangeable Stock"
+msgstr ""
+
+#: build/serializers.py:736
+msgid "Stock items in multiple locations can be used interchangeably"
+msgstr ""
+
+#: build/serializers.py:741
+msgid "Substitute Stock"
+msgstr ""
+
+#: build/serializers.py:742
+msgid "Allow allocation of substitute parts"
+msgstr ""
+
#: build/tasks.py:98
msgid "Stock required for build order"
msgstr ""
@@ -1206,9 +1226,9 @@ msgstr ""
#: order/templates/order/order_base.html:156
#: order/templates/order/sales_order_base.html:163
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1994 templates/js/translated/order.js:932
-#: templates/js/translated/order.js:1204 templates/js/translated/order.js:1387
-#: templates/js/translated/order.js:2330 templates/js/translated/part.js:910
+#: templates/js/translated/build.js:2047 templates/js/translated/order.js:992
+#: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475
+#: templates/js/translated/order.js:2418 templates/js/translated/part.js:911
msgid "Target Date"
msgstr ""
@@ -1230,7 +1250,7 @@ msgstr ""
#: build/templates/build/build_base.html:163
#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
#: order/templates/order/sales_order_base.html:170
-#: templates/js/translated/build.js:1940
+#: templates/js/translated/build.js:1993
#: templates/js/translated/table_filters.js:365
msgid "Completed"
msgstr "Đã hoàn thành"
@@ -1242,7 +1262,7 @@ msgstr "Đã hoàn thành"
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:286
-#: templates/js/translated/order.js:1326 templates/js/translated/stock.js:2436
+#: templates/js/translated/order.js:1414 templates/js/translated/stock.js:2392
msgid "Sales Order"
msgstr ""
@@ -1277,7 +1297,7 @@ msgid "Stock can be taken from any available location."
msgstr ""
#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133
-#: templates/js/translated/order.js:657 templates/js/translated/order.js:1246
+#: templates/js/translated/order.js:717 templates/js/translated/order.js:1333
msgid "Destination"
msgstr ""
@@ -1285,13 +1305,13 @@ msgstr ""
msgid "Destination location not specified"
msgstr ""
-#: build/templates/build/detail.html:74 templates/js/translated/build.js:929
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:930
msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:310
-#: templates/js/translated/stock.js:1796 templates/js/translated/stock.js:2927
+#: templates/js/translated/stock.js:1752 templates/js/translated/stock.js:2883
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:238
msgid "Batch"
@@ -1300,7 +1320,7 @@ msgstr ""
#: build/templates/build/detail.html:127
#: order/templates/order/order_base.html:143
#: order/templates/order/sales_order_base.html:157
-#: templates/js/translated/build.js:1962
+#: templates/js/translated/build.js:2015
msgid "Created"
msgstr ""
@@ -1320,7 +1340,7 @@ msgstr ""
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:177 templates/js/translated/build.js:1484
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1485
msgid "Unallocate stock"
msgstr ""
@@ -1329,111 +1349,119 @@ msgid "Unallocate Stock"
msgstr ""
#: build/templates/build/detail.html:180
-msgid "Allocate stock to build"
+msgid "Automatically allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
+#: build/templates/build/detail.html:181
+msgid "Auto Allocate"
+msgstr ""
+
+#: build/templates/build/detail.html:183
+msgid "Manually allocate stock to build"
+msgstr ""
+
+#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8
msgid "Allocate Stock"
msgstr ""
-#: build/templates/build/detail.html:184
+#: build/templates/build/detail.html:187
msgid "Order required parts"
msgstr ""
-#: build/templates/build/detail.html:185
+#: build/templates/build/detail.html:188
#: company/templates/company/detail.html:38
#: company/templates/company/detail.html:85 order/views.py:463
-#: part/templates/part/category.html:177
+#: part/templates/part/category.html:174
msgid "Order Parts"
msgstr ""
-#: build/templates/build/detail.html:197
+#: build/templates/build/detail.html:200
msgid "Untracked stock has been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:201
+#: build/templates/build/detail.html:204
msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:208
+#: build/templates/build/detail.html:211
msgid "Allocate selected items"
msgstr ""
-#: build/templates/build/detail.html:218
+#: build/templates/build/detail.html:221
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:230
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:231
+#: build/templates/build/detail.html:234
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:232
+#: build/templates/build/detail.html:235
msgid "New Build Output"
msgstr ""
-#: build/templates/build/detail.html:246
+#: build/templates/build/detail.html:249
msgid "Output Actions"
msgstr ""
-#: build/templates/build/detail.html:250
+#: build/templates/build/detail.html:253
msgid "Complete selected build outputs"
msgstr ""
-#: build/templates/build/detail.html:251
+#: build/templates/build/detail.html:254
msgid "Complete outputs"
msgstr ""
-#: build/templates/build/detail.html:253
+#: build/templates/build/detail.html:256
msgid "Delete selected build outputs"
msgstr ""
-#: build/templates/build/detail.html:254
+#: build/templates/build/detail.html:257
msgid "Delete outputs"
msgstr ""
-#: build/templates/build/detail.html:270
+#: build/templates/build/detail.html:273
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19
+#: build/templates/build/detail.html:285 build/templates/build/sidebar.html:19
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:107
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:222
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217
#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:105
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:298
+#: build/templates/build/detail.html:301
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:302 build/templates/build/detail.html:478
-#: company/templates/company/detail.html:188
-#: company/templates/company/detail.html:215
+#: build/templates/build/detail.html:305 build/templates/build/detail.html:481
+#: company/templates/company/detail.html:190
+#: company/templates/company/detail.html:217
#: order/templates/order/purchase_order_detail.html:80
#: order/templates/order/purchase_order_detail.html:108
#: order/templates/order/sales_order_detail.html:127
#: order/templates/order/sales_order_detail.html:186
-#: part/templates/part/detail.html:150 stock/templates/stock/item.html:125
+#: part/templates/part/detail.html:145 stock/templates/stock/item.html:125
#: stock/templates/stock/item.html:223
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:519
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:520
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:329
+#: build/templates/build/index.html:18 part/templates/part/detail.html:322
msgid "New Build Order"
msgstr ""
@@ -1658,7 +1686,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:732 part/models.py:2527 report/models.py:187
+#: common/models.py:732 part/models.py:2541 report/models.py:187
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:417
msgid "Template"
@@ -1668,7 +1696,7 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:739 part/models.py:951 templates/js/translated/bom.js:1300
+#: common/models.py:739 part/models.py:951 templates/js/translated/bom.js:1305
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:429
msgid "Assembly"
@@ -2243,7 +2271,7 @@ msgstr ""
#: common/models.py:1325 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:937 templates/js/translated/part.js:1889
+#: templates/js/translated/part.js:938 templates/js/translated/part.js:1890
msgid "Price"
msgstr ""
@@ -2337,14 +2365,14 @@ msgstr ""
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
-#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:210
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208
#: templates/patterns/wizard/upload.html:35
msgid "Upload File"
msgstr ""
#: common/views.py:94 order/views.py:244
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:211
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:209
#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr ""
@@ -2472,7 +2500,7 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:508
+#: company/models.py:320 company/models.py:535 stock/models.py:560
#: stock/templates/stock/item_base.html:137 templates/js/translated/bom.js:541
msgid "Base Part"
msgstr ""
@@ -2499,8 +2527,8 @@ msgstr ""
#: company/models.py:342 company/templates/company/manufacturer_part.html:96
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1124
-#: templates/js/translated/part.js:245 templates/js/translated/part.js:895
+#: templates/js/translated/company.js:818 templates/js/translated/order.js:1211
+#: templates/js/translated/part.js:245 templates/js/translated/part.js:896
msgid "MPN"
msgstr ""
@@ -2529,8 +2557,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2064 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1331
+#: stock/models.py:2116 templates/js/translated/company.js:647
+#: templates/js/translated/part.js:716 templates/js/translated/stock.js:1287
msgid "Value"
msgstr ""
@@ -2538,10 +2566,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:945 part/models.py:2495
+#: company/models.py:429 part/models.py:945 part/models.py:2509
#: part/templates/part/part_base.html:288
#: templates/InvenTree/settings/settings.html:324
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:721
+#: templates/js/translated/company.js:653 templates/js/translated/part.js:722
msgid "Units"
msgstr ""
@@ -2559,8 +2587,8 @@ msgstr ""
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237
#: part/bom.py:265 stock/templates/stock/item_base.html:376
#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:898
-#: templates/js/translated/part.js:215 templates/js/translated/part.js:863
+#: templates/js/translated/company.js:774 templates/js/translated/order.js:958
+#: templates/js/translated/part.js:215 templates/js/translated/part.js:864
#: templates/js/translated/table_filters.js:388
msgid "Supplier"
msgstr "Nhà cung cấp"
@@ -2570,8 +2598,8 @@ msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1111
-#: templates/js/translated/part.js:226 templates/js/translated/part.js:881
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198
+#: templates/js/translated/part.js:226 templates/js/translated/part.js:882
msgid "SKU"
msgstr ""
@@ -2592,7 +2620,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:119
-#: part/models.py:2719 part/templates/part/upload_bom.html:59
+#: part/models.py:2734 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409
msgid "Note"
@@ -2607,8 +2635,8 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:532 stock/templates/stock/item_base.html:317
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1931
+#: stock/models.py:584 stock/templates/stock/item_base.html:317
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1887
msgid "Packaging"
msgstr ""
@@ -2676,11 +2704,11 @@ msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:83 order/models.py:574
-#: order/templates/order/sales_order_base.html:115 stock/models.py:551
-#: stock/models.py:552 stock/serializers.py:683
+#: order/templates/order/sales_order_base.html:115 stock/models.py:603
+#: stock/models.py:604 stock/serializers.py:683
#: stock/templates/stock/item_base.html:269
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1348
-#: templates/js/translated/stock.js:2735
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1436
+#: templates/js/translated/stock.js:2691
#: templates/js/translated/table_filters.js:392
msgid "Customer"
msgstr ""
@@ -2711,7 +2739,7 @@ msgstr ""
#: company/templates/company/detail.html:20
#: company/templates/company/manufacturer_part.html:118
-#: part/templates/part/detail.html:367
+#: part/templates/part/detail.html:360
msgid "New Supplier Part"
msgstr ""
@@ -2719,14 +2747,14 @@ msgstr ""
#: company/templates/company/detail.html:79
#: company/templates/company/manufacturer_part.html:127
#: company/templates/company/manufacturer_part.html:156
-#: part/templates/part/category.html:171 part/templates/part/detail.html:376
-#: part/templates/part/detail.html:405
+#: part/templates/part/category.html:168 part/templates/part/detail.html:369
+#: part/templates/part/detail.html:398
msgid "Options"
msgstr ""
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177
+#: part/templates/part/category.html:174
msgid "Order parts"
msgstr ""
@@ -2748,7 +2776,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:395
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:388
msgid "New Manufacturer Part"
msgstr ""
@@ -2762,7 +2790,7 @@ msgstr ""
#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:40
+#: part/templates/part/detail.html:80 part/templates/part/part_sidebar.html:40
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
@@ -2784,7 +2812,7 @@ msgstr ""
#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:44
+#: part/templates/part/detail.html:103 part/templates/part/part_sidebar.html:44
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
@@ -2802,23 +2830,23 @@ msgid "New Sales Order"
msgstr ""
#: company/templates/company/detail.html:168
-#: templates/js/translated/build.js:1281
+#: templates/js/translated/build.js:1282
msgid "Assigned Stock"
msgstr ""
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:186
msgid "Company Notes"
msgstr ""
-#: company/templates/company/detail.html:384
+#: company/templates/company/detail.html:380
#: company/templates/company/manufacturer_part.html:215
-#: part/templates/part/detail.html:449
+#: part/templates/part/detail.html:442
msgid "Delete Supplier Parts?"
msgstr ""
-#: company/templates/company/detail.html:385
+#: company/templates/company/detail.html:381
#: company/templates/company/manufacturer_part.html:216
-#: part/templates/part/detail.html:450
+#: part/templates/part/detail.html:443
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2835,7 +2863,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:34
#: company/templates/company/supplier_part.html:159
-#: part/templates/part/detail.html:88 part/templates/part/part_base.html:76
+#: part/templates/part/detail.html:83 part/templates/part/part_base.html:76
msgid "Order part"
msgstr ""
@@ -2862,14 +2890,14 @@ msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
-#: part/templates/part/detail.html:378
+#: part/templates/part/detail.html:371
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:129
#: company/templates/company/manufacturer_part.html:158
#: company/templates/company/manufacturer_part.html:254
-#: part/templates/part/detail.html:378 part/templates/part/detail.html:407
+#: part/templates/part/detail.html:371 part/templates/part/detail.html:400
#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31
#: users/models.py:217
msgid "Delete"
@@ -2878,12 +2906,12 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:143
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:17
-#: part/templates/part/detail.html:196 part/templates/part/part_sidebar.html:9
+#: part/templates/part/detail.html:191 part/templates/part/part_sidebar.html:9
msgid "Parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:147
-#: part/templates/part/detail.html:201
+#: part/templates/part/detail.html:196
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:66
msgid "New Parameter"
@@ -2894,7 +2922,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:191
-#: part/templates/part/detail.html:908
+#: part/templates/part/detail.html:894
msgid "Add Parameter"
msgstr ""
@@ -2923,9 +2951,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:516
+#: company/templates/company/supplier_part.html:24 stock/models.py:568
#: stock/templates/stock/item_base.html:381
-#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1888
+#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1844
msgid "Supplier Part"
msgstr ""
@@ -2951,7 +2979,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:166
-#: templates/js/translated/stock.js:368
+#: templates/js/translated/stock.js:367
msgid "New Stock Item"
msgstr ""
@@ -2961,7 +2989,7 @@ msgid "Supplier Part Orders"
msgstr ""
#: company/templates/company/supplier_part.html:160
-#: part/templates/part/detail.html:89
+#: part/templates/part/detail.html:84
msgid "Order Part"
msgstr ""
@@ -2972,7 +3000,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1319
+#: part/templates/part/prices.html:271 part/views.py:1254
msgid "Add Price Break"
msgstr ""
@@ -2980,11 +3008,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1381
+#: company/templates/company/supplier_part.html:224 part/views.py:1316
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1367
+#: company/templates/company/supplier_part.html:238 part/views.py:1302
msgid "Edit Price Break"
msgstr ""
@@ -3002,10 +3030,10 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:150
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/bom.js:553 templates/js/translated/part.js:495
-#: templates/js/translated/part.js:630 templates/js/translated/part.js:1147
-#: templates/js/translated/part.js:1308 templates/js/translated/stock.js:935
-#: templates/js/translated/stock.js:1711 templates/navbar.html:28
+#: templates/js/translated/bom.js:553 templates/js/translated/part.js:496
+#: templates/js/translated/part.js:631 templates/js/translated/part.js:1148
+#: templates/js/translated/part.js:1309 templates/js/translated/stock.js:891
+#: templates/js/translated/stock.js:1667 templates/navbar.html:28
msgid "Stock"
msgstr "Kiện hàng"
@@ -3028,7 +3056,7 @@ msgstr ""
#: stock/templates/stock/location.html:150
#: stock/templates/stock/location.html:162
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2641
+#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2597
#: templates/stats.html:105 templates/stats.html:114 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -3058,20 +3086,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:591
+#: company/views.py:129 part/views.py:589
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:623
+#: company/views.py:158 part/views.py:621
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:630
+#: company/views.py:165 part/views.py:628
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:639
+#: company/views.py:174 part/views.py:637
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -3190,7 +3218,7 @@ msgid "Company from which the items are being ordered"
msgstr ""
#: order/models.py:231 order/templates/order/order_base.html:118
-#: templates/js/translated/order.js:907
+#: templates/js/translated/order.js:967
msgid "Supplier Reference"
msgstr ""
@@ -3247,7 +3275,7 @@ msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
#: order/models.py:589 order/models.py:1084
-#: templates/js/translated/order.js:1395 templates/js/translated/order.js:1546
+#: templates/js/translated/order.js:1483 templates/js/translated/order.js:1634
msgid "Shipment Date"
msgstr ""
@@ -3292,7 +3320,7 @@ msgid "Supplier part must match supplier"
msgstr ""
#: order/models.py:891 order/models.py:982 order/models.py:1078
-#: templates/js/translated/order.js:1937 templates/js/translated/stock.js:2403
+#: templates/js/translated/order.js:2025 templates/js/translated/stock.js:2359
msgid "Order"
msgstr ""
@@ -3300,8 +3328,8 @@ msgstr ""
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:331
-#: templates/js/translated/order.js:876 templates/js/translated/part.js:838
-#: templates/js/translated/stock.js:1865 templates/js/translated/stock.js:2716
+#: templates/js/translated/order.js:936 templates/js/translated/part.js:839
+#: templates/js/translated/stock.js:1821 templates/js/translated/stock.js:2672
msgid "Purchase Order"
msgstr "Đơn hàng"
@@ -3310,8 +3338,8 @@ msgid "Supplier part"
msgstr ""
#: order/models.py:920 order/templates/order/order_base.html:163
-#: templates/js/translated/order.js:654 templates/js/translated/order.js:1226
-#: templates/js/translated/part.js:932 templates/js/translated/part.js:959
+#: templates/js/translated/order.js:714 templates/js/translated/order.js:1313
+#: templates/js/translated/part.js:933 templates/js/translated/part.js:960
#: templates/js/translated/table_filters.js:312
msgid "Received"
msgstr ""
@@ -3320,9 +3348,9 @@ msgstr ""
msgid "Number of items received"
msgstr ""
-#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:645
+#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:697
#: stock/serializers.py:170 stock/templates/stock/item_base.html:338
-#: templates/js/translated/stock.js:1919
+#: templates/js/translated/stock.js:1875
msgid "Purchase Price"
msgstr "Giá mua"
@@ -3456,11 +3484,11 @@ msgstr ""
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:273 templates/js/translated/order.js:514
+#: order/serializers.py:273 templates/js/translated/order.js:574
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:281 templates/js/translated/order.js:525
+#: order/serializers.py:281 templates/js/translated/order.js:585
msgid "Enter serial numbers for incoming stock items"
msgstr ""
@@ -3578,7 +3606,7 @@ msgstr ""
#: order/templates/order/order_base.html:94
#: order/templates/order/sales_order_base.html:89
-#: templates/js/translated/stock.js:2459
+#: templates/js/translated/stock.js:2415
msgid "Order Status"
msgstr ""
@@ -3650,10 +3678,10 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/bom.js:76 templates/js/translated/build.js:380
-#: templates/js/translated/build.js:528 templates/js/translated/build.js:1547
-#: templates/js/translated/order.js:602 templates/js/translated/order.js:1605
-#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769
+#: templates/js/translated/bom.js:76 templates/js/translated/build.js:381
+#: templates/js/translated/build.js:529 templates/js/translated/build.js:1558
+#: templates/js/translated/order.js:662 templates/js/translated/order.js:1693
+#: templates/js/translated/stock.js:557 templates/js/translated/stock.js:725
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr ""
@@ -3717,8 +3745,8 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:940 templates/js/translated/order.js:1403
-#: templates/js/translated/order.js:1533
+#: templates/js/translated/order.js:1000 templates/js/translated/order.js:1491
+#: templates/js/translated/order.js:1621
msgid "Items"
msgstr ""
@@ -3752,9 +3780,9 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:27
-#: order/templates/order/purchase_order_detail.html:182
+#: order/templates/order/purchase_order_detail.html:166
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:245
+#: order/templates/order/sales_order_detail.html:233
msgid "Add Line Item"
msgstr ""
@@ -3794,7 +3822,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:122
-#: templates/js/translated/order.js:1361
+#: templates/js/translated/order.js:1449
msgid "Customer Reference"
msgstr ""
@@ -3827,7 +3855,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:48
-#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1465
+#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1466
msgid "Actions"
msgstr ""
@@ -3902,31 +3930,31 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:499
+#: part/api.py:502
msgid "Valid"
msgstr ""
-#: part/api.py:500
+#: part/api.py:503
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:505
+#: part/api.py:508
msgid "This option must be selected"
msgstr ""
-#: part/api.py:847
+#: part/api.py:866
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:851
+#: part/api.py:870
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:866
+#: part/api.py:885
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:897 part/api.py:901 part/api.py:916 part/api.py:920
+#: part/api.py:916 part/api.py:920 part/api.py:935 part/api.py:939
msgid "This field is required"
msgstr ""
@@ -3944,7 +3972,7 @@ msgid "Available Stock"
msgstr ""
#: part/bom.py:128 part/templates/part/part_base.html:203
-#: templates/js/translated/part.js:1323
+#: templates/js/translated/part.js:1324
msgid "On Order"
msgstr ""
@@ -3976,7 +4004,7 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:97 part/models.py:2571 part/templates/part/category.html:15
+#: part/models.py:97 part/models.py:2585 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -3993,7 +4021,7 @@ msgstr ""
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:37
-#: templates/js/translated/part.js:1685 templates/navbar.html:21
+#: templates/js/translated/part.js:1686 templates/navbar.html:21
#: templates/stats.html:92 templates/stats.html:101 users/models.py:41
msgid "Parts"
msgstr "Nguyên liệu"
@@ -4023,7 +4051,7 @@ msgstr ""
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:803 part/models.py:2624
+#: part/models.py:803 part/models.py:2638
msgid "Part name"
msgstr ""
@@ -4056,11 +4084,11 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:841 part/models.py:2321 part/models.py:2570
+#: part/models.py:841 part/models.py:2335 part/models.py:2584
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:223
-#: templates/js/translated/part.js:1290
+#: templates/js/translated/part.js:1291
msgid "Category"
msgstr ""
@@ -4069,8 +4097,8 @@ msgid "Part category"
msgstr ""
#: part/models.py:847 part/templates/part/part_base.html:274
-#: templates/js/translated/part.js:618 templates/js/translated/part.js:1243
-#: templates/js/translated/stock.js:1683
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:1244
+#: templates/js/translated/stock.js:1639
msgid "IPN"
msgstr ""
@@ -4083,7 +4111,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:855 part/templates/part/part_base.html:281
-#: report/models.py:200 templates/js/translated/part.js:622
+#: report/models.py:200 templates/js/translated/part.js:623
msgid "Revision"
msgstr ""
@@ -4175,301 +4203,309 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2371
+#: part/models.py:2385
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2388
+#: part/models.py:2402
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2408 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:1311
+#: part/models.py:2422 templates/js/translated/part.js:1737
+#: templates/js/translated/stock.js:1267
msgid "Test Name"
msgstr ""
-#: part/models.py:2409
+#: part/models.py:2423
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2414
+#: part/models.py:2428
msgid "Test Description"
msgstr ""
-#: part/models.py:2415
+#: part/models.py:2429
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2420 templates/js/translated/part.js:1745
+#: part/models.py:2434 templates/js/translated/part.js:1746
#: templates/js/translated/table_filters.js:276
msgid "Required"
msgstr ""
-#: part/models.py:2421
+#: part/models.py:2435
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2426 templates/js/translated/part.js:1753
+#: part/models.py:2440 templates/js/translated/part.js:1754
msgid "Requires Value"
msgstr ""
-#: part/models.py:2427
+#: part/models.py:2441
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2432 templates/js/translated/part.js:1760
+#: part/models.py:2446 templates/js/translated/part.js:1761
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2433
+#: part/models.py:2447
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2444
+#: part/models.py:2458
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2480
+#: part/models.py:2494
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2488
+#: part/models.py:2502
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2495
+#: part/models.py:2509
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2525
+#: part/models.py:2539
msgid "Parent Part"
msgstr ""
-#: part/models.py:2527 part/models.py:2576 part/models.py:2577
+#: part/models.py:2541 part/models.py:2590 part/models.py:2591
#: templates/InvenTree/settings/settings.html:218
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2529
+#: part/models.py:2543
msgid "Data"
msgstr ""
-#: part/models.py:2529
+#: part/models.py:2543
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2581 templates/InvenTree/settings/settings.html:227
+#: part/models.py:2595 templates/InvenTree/settings/settings.html:227
msgid "Default Value"
msgstr ""
-#: part/models.py:2582
+#: part/models.py:2596
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2616
+#: part/models.py:2630
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2619 templates/js/translated/model_renderers.js:182
+#: part/models.py:2633 templates/js/translated/model_renderers.js:182
msgid "Part ID"
msgstr ""
-#: part/models.py:2620
+#: part/models.py:2634
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2623
+#: part/models.py:2637
msgid "Part Name"
msgstr ""
-#: part/models.py:2627
+#: part/models.py:2641
msgid "Part IPN"
msgstr ""
-#: part/models.py:2628
+#: part/models.py:2642
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2645
msgid "Level"
msgstr ""
-#: part/models.py:2632
+#: part/models.py:2646
msgid "BOM level"
msgstr ""
-#: part/models.py:2692
+#: part/models.py:2707
msgid "Select parent part"
msgstr ""
-#: part/models.py:2700
+#: part/models.py:2715
msgid "Sub part"
msgstr ""
-#: part/models.py:2701
+#: part/models.py:2716
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2707
+#: part/models.py:2722
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2709 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:791 templates/js/translated/bom.js:865
+#: part/models.py:2724 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2709
+#: part/models.py:2724
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2712 part/templates/part/upload_bom.html:55
+#: part/models.py:2727 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2713
+#: part/models.py:2728
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2716
+#: part/models.py:2731
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2719
+#: part/models.py:2734
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2721
+#: part/models.py:2736
msgid "Checksum"
msgstr ""
-#: part/models.py:2721
+#: part/models.py:2736
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2725 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:882
+#: part/models.py:2740 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:880
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2726
+#: part/models.py:2741
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2731 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:874
+#: part/models.py:2746 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:872
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2732
+#: part/models.py:2747
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2817 stock/models.py:394
+#: part/models.py:2832 stock/models.py:446
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2826 part/models.py:2828
+#: part/models.py:2841 part/models.py:2843
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2957
+#: part/models.py:2972
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2979
+#: part/models.py:2994
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2991
+#: part/models.py:3006
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2999
+#: part/models.py:3014
msgid "Substitute part"
msgstr ""
-#: part/models.py:3010
+#: part/models.py:3025
msgid "Part 1"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3029
msgid "Part 2"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3029
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3046
+#: part/models.py:3061
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
-#: part/serializers.py:667
+#: part/serializers.py:670
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:678
+#: part/serializers.py:681
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:679
+#: part/serializers.py:682
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:684
+#: part/serializers.py:687
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:685
+#: part/serializers.py:688
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:690
+#: part/serializers.py:693
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:691
+#: part/serializers.py:694
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:699
+msgid "Copy Substitute Parts"
+msgstr ""
+
+#: part/serializers.py:700
+msgid "Copy substitute parts when duplicate BOM items"
+msgstr ""
+
+#: part/serializers.py:744
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:735
+#: part/serializers.py:745
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:762
+#: part/serializers.py:772
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:805
+#: part/serializers.py:815
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:808
+#: part/serializers.py:818
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:811
+#: part/serializers.py:821
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:820
+#: part/serializers.py:830
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:828
+#: part/serializers.py:838
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:847
+#: part/serializers.py:857
msgid "At least one BOM item is required"
msgstr ""
@@ -4496,7 +4532,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:279
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:274
msgid "BOM actions"
msgstr ""
@@ -4548,7 +4584,7 @@ msgstr ""
msgid "Top level part category"
msgstr ""
-#: part/templates/part/category.html:114 part/templates/part/category.html:205
+#: part/templates/part/category.html:114 part/templates/part/category.html:202
#: part/templates/part/category_sidebar.html:7
msgid "Subcategories"
msgstr ""
@@ -4557,55 +4593,51 @@ msgstr ""
msgid "Parts (Including subcategories)"
msgstr ""
-#: part/templates/part/category.html:156
-msgid "Export Part Data"
-msgstr ""
-
-#: part/templates/part/category.html:157 part/templates/part/category.html:181
-msgid "Export"
-msgstr ""
-
-#: part/templates/part/category.html:160
+#: part/templates/part/category.html:157
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:161 templates/js/translated/bom.js:365
+#: part/templates/part/category.html:158 templates/js/translated/bom.js:365
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:175
+#: part/templates/part/category.html:172
msgid "Set category"
msgstr ""
-#: part/templates/part/category.html:175
+#: part/templates/part/category.html:172
msgid "Set Category"
msgstr ""
-#: part/templates/part/category.html:179
+#: part/templates/part/category.html:176
msgid "Print Labels"
msgstr ""
-#: part/templates/part/category.html:181
+#: part/templates/part/category.html:178
+msgid "Export"
+msgstr ""
+
+#: part/templates/part/category.html:178
msgid "Export Data"
msgstr ""
-#: part/templates/part/category.html:195
+#: part/templates/part/category.html:192
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:288
+#: part/templates/part/category.html:285
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:315
+#: part/templates/part/category.html:305
msgid "Create Part"
msgstr ""
-#: part/templates/part/category.html:318
+#: part/templates/part/category.html:308
msgid "Create another part after this one"
msgstr ""
-#: part/templates/part/category.html:319
+#: part/templates/part/category.html:309
msgid "Part created successfully"
msgstr ""
@@ -4676,155 +4708,150 @@ msgstr ""
msgid "Part Stock"
msgstr ""
-#: part/templates/part/detail.html:33
-#, python-format
-msgid "Showing stock for all variants of %(full_name)s"
-msgstr ""
-
-#: part/templates/part/detail.html:43
+#: part/templates/part/detail.html:38
msgid "Part Stock Allocations"
msgstr ""
-#: part/templates/part/detail.html:60
+#: part/templates/part/detail.html:55
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:65
+#: part/templates/part/detail.html:60
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:122
+#: part/templates/part/detail.html:117
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:168
+#: part/templates/part/detail.html:163
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:172
+#: part/templates/part/detail.html:167
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:173
+#: part/templates/part/detail.html:168
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:200
+#: part/templates/part/detail.html:195
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:237 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:52
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:241 part/templates/part/detail.html:242
+#: part/templates/part/detail.html:236 part/templates/part/detail.html:237
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:262 part/templates/part/part_sidebar.html:18
+#: part/templates/part/detail.html:257 part/templates/part/part_sidebar.html:18
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:267
+#: part/templates/part/detail.html:262
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:271 templates/js/translated/bom.js:283
+#: part/templates/part/detail.html:266 templates/js/translated/bom.js:283
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:268
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:283
+#: part/templates/part/detail.html:278
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:285 templates/js/translated/part.js:272
+#: part/templates/part/detail.html:279 templates/js/translated/part.js:272
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:287
+#: part/templates/part/detail.html:280
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:285
msgid "New BOM Item"
msgstr ""
-#: part/templates/part/detail.html:293
+#: part/templates/part/detail.html:286
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:306
+#: part/templates/part/detail.html:299
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:323
+#: part/templates/part/detail.html:316
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:348
+#: part/templates/part/detail.html:341
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:363
+#: part/templates/part/detail.html:356
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:391
+#: part/templates/part/detail.html:384
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:407
+#: part/templates/part/detail.html:400
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:589
+#: part/templates/part/detail.html:582
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:590
+#: part/templates/part/detail.html:583
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:639
+#: part/templates/part/detail.html:632
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:696
+#: part/templates/part/detail.html:689
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:704
+#: part/templates/part/detail.html:697
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:801
+#: part/templates/part/detail.html:794
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:858
+#: part/templates/part/detail.html:844
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:971
+#: part/templates/part/detail.html:957
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:983
+#: part/templates/part/detail.html:969
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:995
+#: part/templates/part/detail.html:981
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1084
+#: part/templates/part/detail.html:1070
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4969,7 +4996,7 @@ msgstr ""
#: templates/js/translated/company.js:508
#: templates/js/translated/company.js:765
#: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:533 templates/js/translated/part.js:610
+#: templates/js/translated/part.js:534 templates/js/translated/part.js:611
msgid "Inactive"
msgstr ""
@@ -4983,7 +5010,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2356
+#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2444
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5000,12 +5027,12 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:903
+#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:901
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1154
-#: templates/js/translated/part.js:1327
+#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1155
+#: templates/js/translated/part.js:1328
msgid "Building"
msgstr ""
@@ -5057,7 +5084,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:857
+#: templates/js/translated/bom.js:855
msgid "No supplier pricing available"
msgstr ""
@@ -5177,7 +5204,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:851
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849
msgid "Supplier Cost"
msgstr ""
@@ -5199,7 +5226,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1390
+#: part/templates/part/prices.html:215 part/views.py:1325
msgid "Add Internal Price Break"
msgstr ""
@@ -5219,9 +5246,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813
-#: templates/js/translated/part.js:497 templates/js/translated/part.js:1144
-#: templates/js/translated/part.js:1331
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811
+#: templates/js/translated/part.js:498 templates/js/translated/part.js:1145
+#: templates/js/translated/part.js:1332
msgid "No Stock"
msgstr ""
@@ -5275,100 +5302,100 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:172
+#: part/templatetags/inventree_extras.py:174
msgid "Unknown database"
msgstr ""
-#: part/views.py:90
+#: part/views.py:88
msgid "Set Part Category"
msgstr ""
-#: part/views.py:140
+#: part/views.py:138
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:212
+#: part/views.py:210
msgid "Match References"
msgstr ""
-#: part/views.py:509
+#: part/views.py:507
msgid "None"
msgstr ""
-#: part/views.py:568
+#: part/views.py:566
msgid "Part QR Code"
msgstr ""
-#: part/views.py:670
+#: part/views.py:668
msgid "Select Part Image"
msgstr ""
-#: part/views.py:696
+#: part/views.py:694
msgid "Updated part image"
msgstr ""
-#: part/views.py:699
+#: part/views.py:697
msgid "Part image not found"
msgstr ""
-#: part/views.py:850
+#: part/views.py:785
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:857
+#: part/views.py:792
msgid "Part was deleted"
msgstr ""
-#: part/views.py:866
+#: part/views.py:801
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1015
+#: part/views.py:950
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1025
+#: part/views.py:960
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1032
+#: part/views.py:967
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1091 templates/js/translated/part.js:315
+#: part/views.py:1026 templates/js/translated/part.js:315
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1129
+#: part/views.py:1064
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1135
+#: part/views.py:1070
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1144
+#: part/views.py:1079
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1245
+#: part/views.py:1180
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1301
+#: part/views.py:1236
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1323
+#: part/views.py:1258
msgid "Added new price break"
msgstr ""
-#: part/views.py:1399
+#: part/views.py:1334
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1407
+#: part/views.py:1342
msgid "Delete Internal Price Break"
msgstr ""
@@ -5574,12 +5601,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:556 stock/templates/stock/item_base.html:151
-#: templates/js/translated/build.js:373 templates/js/translated/build.js:521
-#: templates/js/translated/build.js:919 templates/js/translated/build.js:1295
+#: stock/models.py:608 stock/templates/stock/item_base.html:151
+#: templates/js/translated/build.js:374 templates/js/translated/build.js:522
+#: templates/js/translated/build.js:920 templates/js/translated/build.js:1296
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:99 templates/js/translated/order.js:2062
-#: templates/js/translated/order.js:2151 templates/js/translated/stock.js:423
+#: templates/js/translated/order.js:99 templates/js/translated/order.js:2150
+#: templates/js/translated/order.js:2239 templates/js/translated/stock.js:422
msgid "Serial Number"
msgstr ""
@@ -5588,19 +5615,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:2052
+#: stock/models.py:2104
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:2058
+#: stock/models.py:2110
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:50
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:924 templates/js/translated/stock.js:2657
+#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2613
msgid "Date"
msgstr ""
@@ -5618,26 +5645,26 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756
-#: templates/js/translated/stock.js:2910
+#: templates/js/translated/stock.js:542 templates/js/translated/stock.js:712
+#: templates/js/translated/stock.js:2866
msgid "Serial"
msgstr ""
-#: stock/api.py:501
+#: stock/api.py:503
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:508
+#: stock/api.py:510
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:533
+#: stock/api.py:535
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/forms.py:74 stock/forms.py:198 stock/models.py:613
+#: stock/forms.py:74 stock/forms.py:198 stock/models.py:665
#: stock/templates/stock/item_base.html:188
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1791
msgid "Expiry Date"
msgstr ""
@@ -5677,228 +5704,228 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:62 stock/models.py:650
+#: stock/models.py:62 stock/models.py:702
#: stock/templates/stock/item_base.html:402
msgid "Owner"
msgstr ""
-#: stock/models.py:63 stock/models.py:651
+#: stock/models.py:63 stock/models.py:703
msgid "Select Owner"
msgstr ""
-#: stock/models.py:375
+#: stock/models.py:427
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:463
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:421 stock/models.py:430
+#: stock/models.py:473 stock/models.py:482
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:422
+#: stock/models.py:474
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:444
+#: stock/models.py:496
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:450
+#: stock/models.py:502
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:457
+#: stock/models.py:509
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:500
+#: stock/models.py:552
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:509
+#: stock/models.py:561
msgid "Base part"
msgstr ""
-#: stock/models.py:517
+#: stock/models.py:569
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:523 stock/templates/stock/location.html:16
+#: stock/models.py:575 stock/templates/stock/location.html:16
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr "Kho hàng"
-#: stock/models.py:526
+#: stock/models.py:578
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:585
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:539 stock/templates/stock/item_base.html:277
+#: stock/models.py:591 stock/templates/stock/item_base.html:277
msgid "Installed In"
msgstr ""
-#: stock/models.py:542
+#: stock/models.py:594
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:558
+#: stock/models.py:610
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:572
+#: stock/models.py:624
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:576
+#: stock/models.py:628
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:585
+#: stock/models.py:637
msgid "Source Build"
msgstr ""
-#: stock/models.py:587
+#: stock/models.py:639
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:598
+#: stock/models.py:650
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:601
+#: stock/models.py:653
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:607
+#: stock/models.py:659
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:614
+#: stock/models.py:666
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:627
+#: stock/models.py:679
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:627
+#: stock/models.py:679
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:637 stock/templates/stock/item.html:121
+#: stock/models.py:689 stock/templates/stock/item.html:121
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:646
+#: stock/models.py:698
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1171
+#: stock/models.py:1223
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1177
+#: stock/models.py:1229
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1183
+#: stock/models.py:1235
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1186
+#: stock/models.py:1238
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1189
+#: stock/models.py:1241
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1196
+#: stock/models.py:1248
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1267
+#: stock/models.py:1319
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1270
+#: stock/models.py:1322
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1273
+#: stock/models.py:1325
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1276
+#: stock/models.py:1328
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1279
+#: stock/models.py:1331
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1282
+#: stock/models.py:1334
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1289 stock/serializers.py:832
+#: stock/models.py:1341 stock/serializers.py:832
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1293
+#: stock/models.py:1345
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1297
+#: stock/models.py:1349
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1301
+#: stock/models.py:1353
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1473
+#: stock/models.py:1525
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1972
+#: stock/models.py:2024
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2029
+#: stock/models.py:2081
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2035
+#: stock/models.py:2087
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2053
+#: stock/models.py:2105
msgid "Test name"
msgstr ""
-#: stock/models.py:2059
+#: stock/models.py:2111
msgid "Test result"
msgstr ""
-#: stock/models.py:2065
+#: stock/models.py:2117
msgid "Test output value"
msgstr ""
-#: stock/models.py:2072
+#: stock/models.py:2124
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2078
+#: stock/models.py:2130
msgid "Test notes"
msgstr ""
@@ -5935,7 +5962,7 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:363 stock/views.py:1127
+#: stock/serializers.py:363 stock/views.py:1009
msgid "Serial numbers already exist"
msgstr ""
@@ -6052,11 +6079,11 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:147 templates/js/translated/stock.js:3019
+#: stock/templates/stock/item.html:147 templates/js/translated/stock.js:2975
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1479
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1435
msgid "Add Test Result"
msgstr ""
@@ -6070,7 +6097,7 @@ msgstr ""
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:46 templates/stock_table.html:24
+#: stock/templates/stock/item_base.html:46 templates/stock_table.html:21
msgid "Scan to Location"
msgstr ""
@@ -6083,15 +6110,15 @@ msgid "Stock adjustment actions"
msgstr ""
#: stock/templates/stock/item_base.html:69
-#: stock/templates/stock/location.html:52 templates/stock_table.html:50
+#: stock/templates/stock/location.html:52 templates/stock_table.html:47
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48
+#: stock/templates/stock/item_base.html:72 templates/stock_table.html:45
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49
+#: stock/templates/stock/item_base.html:75 templates/stock_table.html:46
msgid "Remove stock"
msgstr ""
@@ -6100,11 +6127,11 @@ msgid "Serialize stock"
msgstr ""
#: stock/templates/stock/item_base.html:82
-#: stock/templates/stock/location.html:58 templates/stock_table.html:51
+#: stock/templates/stock/location.html:58 templates/stock_table.html:48
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85 templates/stock_table.html:54
+#: stock/templates/stock/item_base.html:85 templates/stock_table.html:51
msgid "Assign to customer"
msgstr ""
@@ -6181,7 +6208,7 @@ msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:201
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1807
msgid "Last Updated"
msgstr ""
@@ -6218,7 +6245,7 @@ msgid "This stock item is serialized - it has a unique serial number and the qua
msgstr ""
#: stock/templates/stock/item_base.html:296
-#: templates/js/translated/build.js:1317
+#: templates/js/translated/build.js:1318
msgid "No location set"
msgstr ""
@@ -6320,11 +6347,11 @@ msgstr ""
msgid "Stock Locations"
msgstr ""
-#: stock/templates/stock/location.html:185 templates/stock_table.html:30
+#: stock/templates/stock/location.html:185 templates/stock_table.html:27
msgid "Printing Actions"
msgstr ""
-#: stock/templates/stock/location.html:189 templates/stock_table.html:34
+#: stock/templates/stock/location.html:189 templates/stock_table.html:31
msgid "Print labels"
msgstr ""
@@ -6348,7 +6375,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:749
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:631
msgid "Convert Stock Item"
msgstr ""
@@ -6369,95 +6396,95 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181 templates/js/translated/stock.js:139
+#: stock/views.py:152 templates/js/translated/stock.js:138
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:728 stock/views.py:854 stock/views.py:1136
+#: stock/views.py:259 stock/views.py:610 stock/views.py:736 stock/views.py:1018
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:274
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:293
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:302
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:342
+#: stock/views.py:313
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:353
+#: stock/views.py:324
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:370
+#: stock/views.py:341
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:371
+#: stock/views.py:342
msgid "Check the confirmation box"
msgstr ""
-#: stock/views.py:475
+#: stock/views.py:357
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:500
+#: stock/views.py:382
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:597 templates/js/translated/stock.js:1074
+#: stock/views.py:479 templates/js/translated/stock.js:1030
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:608
+#: stock/views.py:490
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:630 templates/js/translated/stock.js:332
+#: stock/views.py:512 templates/js/translated/stock.js:331
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:780
+#: stock/views.py:662
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:881
+#: stock/views.py:763
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1023 templates/js/translated/stock.js:312
+#: stock/views.py:905 templates/js/translated/stock.js:311
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1105
+#: stock/views.py:987
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1205
+#: stock/views.py:1087
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1218
+#: stock/views.py:1100
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1229
+#: stock/views.py:1111
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1236
+#: stock/views.py:1118
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1245
+#: stock/views.py:1127
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -7381,14 +7408,14 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1335
+#: templates/js/translated/bom.js:1340
msgid "Required Quantity"
msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:804 templates/js/translated/build.js:1411
-#: templates/js/translated/build.js:2057
+#: templates/js/translated/bom.js:802 templates/js/translated/build.js:1412
+#: templates/js/translated/build.js:2110
#: templates/js/translated/table_filters.js:178
msgid "Available"
msgstr ""
@@ -7580,7 +7607,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:982
msgid "Remove stock item"
msgstr ""
@@ -7635,12 +7662,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286
-#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518
+#: templates/js/translated/order.js:429 templates/js/translated/tables.js:53
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519
+#: templates/js/translated/order.js:430
msgid "Select file format"
msgstr ""
@@ -7716,275 +7743,307 @@ msgstr ""
msgid "Edit BOM Item Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:741
+#: templates/js/translated/bom.js:739
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:745 templates/js/translated/build.js:1393
+#: templates/js/translated/bom.js:743 templates/js/translated/build.js:1394
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:750
+#: templates/js/translated/bom.js:748
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:822
+#: templates/js/translated/bom.js:820
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:837
+#: templates/js/translated/bom.js:835
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:844
+#: templates/js/translated/bom.js:842
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:893 templates/js/translated/bom.js:982
+#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:953
+#: templates/js/translated/bom.js:951
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:955
+#: templates/js/translated/bom.js:953
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:957
+#: templates/js/translated/bom.js:955
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138
+#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:961 templates/js/translated/bom.js:1121
+#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1060 templates/js/translated/build.js:1137
+#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1138
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1116
+#: templates/js/translated/bom.js:1121
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:1318 templates/js/translated/build.js:1377
+#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1378
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1340
+#: templates/js/translated/bom.js:1345
msgid "Inherited from parent BOM"
msgstr ""
-#: templates/js/translated/build.js:85
+#: templates/js/translated/build.js:86
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:119
+#: templates/js/translated/build.js:120
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:140
+#: templates/js/translated/build.js:141
msgid "Build order is ready to be completed"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:146
msgid "Build Order is incomplete"
msgstr ""
-#: templates/js/translated/build.js:173
+#: templates/js/translated/build.js:174
msgid "Complete Build Order"
msgstr ""
-#: templates/js/translated/build.js:214 templates/js/translated/stock.js:92
-#: templates/js/translated/stock.js:181
+#: templates/js/translated/build.js:215 templates/js/translated/stock.js:91
+#: templates/js/translated/stock.js:180
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:216 templates/js/translated/stock.js:94
-#: templates/js/translated/stock.js:183
+#: templates/js/translated/build.js:217 templates/js/translated/stock.js:93
+#: templates/js/translated/stock.js:182
msgid "Latest serial number"
msgstr "Số seri mới nhất"
-#: templates/js/translated/build.js:225
+#: templates/js/translated/build.js:226
msgid "The Bill of Materials contains trackable parts"
msgstr ""
-#: templates/js/translated/build.js:226
+#: templates/js/translated/build.js:227
msgid "Build outputs must be generated individually"
msgstr ""
-#: templates/js/translated/build.js:234
+#: templates/js/translated/build.js:235
msgid "Trackable parts can have serial numbers specified"
msgstr ""
-#: templates/js/translated/build.js:235
+#: templates/js/translated/build.js:236
msgid "Enter serial numbers to generate multiple single build outputs"
msgstr ""
-#: templates/js/translated/build.js:242
+#: templates/js/translated/build.js:243
msgid "Create Build Output"
msgstr ""
-#: templates/js/translated/build.js:273
+#: templates/js/translated/build.js:274
msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:284
+#: templates/js/translated/build.js:285
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:293
+#: templates/js/translated/build.js:294
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:301
+#: templates/js/translated/build.js:302
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:324
+#: templates/js/translated/build.js:325
msgid "Are you sure you wish to unallocate stock items from this build?"
msgstr ""
-#: templates/js/translated/build.js:342
+#: templates/js/translated/build.js:343
msgid "Unallocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:360 templates/js/translated/build.js:508
+#: templates/js/translated/build.js:361 templates/js/translated/build.js:509
msgid "Select Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:361 templates/js/translated/build.js:509
+#: templates/js/translated/build.js:362 templates/js/translated/build.js:510
msgid "At least one build output must be selected"
msgstr ""
-#: templates/js/translated/build.js:415 templates/js/translated/build.js:563
+#: templates/js/translated/build.js:416 templates/js/translated/build.js:564
msgid "Output"
msgstr ""
-#: templates/js/translated/build.js:431
+#: templates/js/translated/build.js:432
msgid "Complete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:576
+#: templates/js/translated/build.js:577
msgid "Delete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:665
+#: templates/js/translated/build.js:666
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:703 templates/js/translated/order.js:1965
+#: templates/js/translated/build.js:704 templates/js/translated/order.js:2053
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:885
+#: templates/js/translated/build.js:886
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1334 templates/js/translated/build.js:2068
-#: templates/js/translated/order.js:2099
+#: templates/js/translated/build.js:1335 templates/js/translated/build.js:2121
+#: templates/js/translated/order.js:2187
msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1336 templates/js/translated/build.js:2069
-#: templates/js/translated/order.js:2100
+#: templates/js/translated/build.js:1337 templates/js/translated/build.js:2122
+#: templates/js/translated/order.js:2188
msgid "Delete stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1354
+#: templates/js/translated/build.js:1355
msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:1364
+#: templates/js/translated/build.js:1365
msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:1389
+#: templates/js/translated/build.js:1390
msgid "Substitute parts available"
msgstr ""
-#: templates/js/translated/build.js:1406
+#: templates/js/translated/build.js:1407
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1416 templates/js/translated/build.js:1656
-#: templates/js/translated/build.js:2064 templates/js/translated/order.js:2366
+#: templates/js/translated/build.js:1417 templates/js/translated/build.js:1667
+#: templates/js/translated/build.js:2117 templates/js/translated/order.js:2454
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1472 templates/js/translated/order.js:2446
+#: templates/js/translated/build.js:1473 templates/js/translated/order.js:2534
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:1476 templates/stock_table.html:53
+#: templates/js/translated/build.js:1477 templates/stock_table.html:50
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1479 templates/js/translated/order.js:2439
+#: templates/js/translated/build.js:1480 templates/js/translated/order.js:2527
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:1558 templates/js/translated/order.js:1616
-msgid "Specify stock allocation quantity"
-msgstr ""
-
-#: templates/js/translated/build.js:1629 templates/js/translated/label.js:134
-#: templates/js/translated/order.js:1667 templates/js/translated/report.js:225
+#: templates/js/translated/build.js:1519 templates/js/translated/label.js:134
+#: templates/js/translated/order.js:1755 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
-#: templates/js/translated/build.js:1630 templates/js/translated/order.js:1668
+#: templates/js/translated/build.js:1520 templates/js/translated/order.js:1756
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:1644 templates/js/translated/order.js:1682
+#: templates/js/translated/build.js:1569 templates/js/translated/order.js:1704
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:1640
+msgid "All Parts Allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:1641
+msgid "All selected parts have been fully allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:1655 templates/js/translated/order.js:1770
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1717
+#: templates/js/translated/build.js:1684 templates/js/translated/order.js:1805
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1674
+#: templates/js/translated/build.js:1685
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1730
+#: templates/js/translated/build.js:1696 templates/js/translated/order.js:1818
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1757 templates/js/translated/order.js:1807
+#: templates/js/translated/build.js:1768 templates/js/translated/order.js:1895
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1875
+#: templates/js/translated/build.js:1865
+msgid "Automatic Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1866
+msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
+msgstr ""
+
+#: templates/js/translated/build.js:1868
+msgid "If a location is specifed, stock will only be allocated from that location"
+msgstr ""
+
+#: templates/js/translated/build.js:1869
+msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
+msgstr ""
+
+#: templates/js/translated/build.js:1870
+msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
+msgstr ""
+
+#: templates/js/translated/build.js:1890
+msgid "Allocate Stock Items"
+msgstr ""
+
+#: templates/js/translated/build.js:1928
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1892 templates/js/translated/part.js:1235
-#: templates/js/translated/part.js:1646 templates/js/translated/stock.js:1643
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/build.js:1945 templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1647 templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:2567
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1912
+#: templates/js/translated/build.js:1965
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1976 templates/js/translated/stock.js:2823
+#: templates/js/translated/build.js:2029 templates/js/translated/stock.js:2779
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1988
+#: templates/js/translated/build.js:2041
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:2045
+#: templates/js/translated/build.js:2098
msgid "No parts allocated for"
msgstr ""
@@ -8049,34 +8108,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:517
-#: templates/js/translated/part.js:602
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:518
+#: templates/js/translated/part.js:603
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:521
-#: templates/js/translated/part.js:606
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:522
+#: templates/js/translated/part.js:607
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:696
+#: templates/js/translated/company.js:631 templates/js/translated/part.js:697
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:738
+#: templates/js/translated/company.js:668 templates/js/translated/part.js:739
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:739
+#: templates/js/translated/company.js:669 templates/js/translated/part.js:740
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:756
+#: templates/js/translated/company.js:688 templates/js/translated/part.js:757
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:768
+#: templates/js/translated/company.js:699 templates/js/translated/part.js:769
msgid "Delete Parameter"
msgstr ""
@@ -8085,12 +8144,12 @@ msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:429
+#: templates/js/translated/filters.js:441
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:430
+#: templates/js/translated/filters.js:442
msgid "false"
msgstr ""
@@ -8098,19 +8157,23 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:286
+#: templates/js/translated/filters.js:288
+msgid "Download data"
+msgstr ""
+
+#: templates/js/translated/filters.js:291
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:290
+#: templates/js/translated/filters.js:295
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:293
+#: templates/js/translated/filters.js:298
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:338
+#: templates/js/translated/filters.js:350
msgid "Create filter"
msgstr ""
@@ -8181,7 +8244,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1050
+#: templates/js/translated/stock.js:1006
msgid "Select Stock Items"
msgstr ""
@@ -8354,206 +8417,214 @@ msgstr ""
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:366
+#: templates/js/translated/order.js:426
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:460
+#: templates/js/translated/order.js:520
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:461
+#: templates/js/translated/order.js:521
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:481 templates/js/translated/order.js:580
+#: templates/js/translated/order.js:541 templates/js/translated/order.js:640
msgid "Add batch code"
msgstr ""
-#: templates/js/translated/order.js:487 templates/js/translated/order.js:591
+#: templates/js/translated/order.js:547 templates/js/translated/order.js:651
msgid "Add serial numbers"
msgstr ""
-#: templates/js/translated/order.js:499
+#: templates/js/translated/order.js:559
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:563 templates/js/translated/stock.js:2263
+#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2219
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:652
+#: templates/js/translated/order.js:712
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:653
+#: templates/js/translated/order.js:713
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:655
+#: templates/js/translated/order.js:715
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/order.js:674
+#: templates/js/translated/order.js:734
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:675
+#: templates/js/translated/order.js:735
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:865 templates/js/translated/part.js:809
+#: templates/js/translated/order.js:925 templates/js/translated/part.js:810
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:890 templates/js/translated/order.js:1338
+#: templates/js/translated/order.js:950 templates/js/translated/order.js:1426
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:1018 templates/js/translated/order.js:2496
+#: templates/js/translated/order.js:1074 templates/js/translated/order.js:2585
+msgid "Duplicate Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:1104 templates/js/translated/order.js:2607
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1030 templates/js/translated/order.js:2507
+#: templates/js/translated/order.js:1117 templates/js/translated/order.js:2618
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:1073
+#: templates/js/translated/order.js:1160
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:1100 templates/js/translated/order.js:2255
+#: templates/js/translated/order.js:1187 templates/js/translated/order.js:2343
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:1154 templates/js/translated/order.js:2280
-#: templates/js/translated/part.js:1863 templates/js/translated/part.js:2074
+#: templates/js/translated/order.js:1241 templates/js/translated/order.js:2368
+#: templates/js/translated/part.js:1864 templates/js/translated/part.js:2075
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1169 templates/js/translated/order.js:2296
+#: templates/js/translated/order.js:1256 templates/js/translated/order.js:2384
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:1210 templates/js/translated/order.js:2338
-#: templates/js/translated/part.js:918
+#: templates/js/translated/order.js:1297 templates/js/translated/order.js:2426
+#: templates/js/translated/part.js:919
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:1269 templates/js/translated/part.js:964
+#: templates/js/translated/order.js:1356 templates/js/translated/part.js:965
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1273 templates/js/translated/order.js:2452
+#: templates/js/translated/order.js:1360 templates/js/translated/order.js:2540
+msgid "Duplicate line item"
+msgstr ""
+
+#: templates/js/translated/order.js:1361 templates/js/translated/order.js:2541
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:1274 templates/js/translated/order.js:2456
+#: templates/js/translated/order.js:1362 templates/js/translated/order.js:2545
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1314
+#: templates/js/translated/order.js:1402
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1352
+#: templates/js/translated/order.js:1440
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1439
+#: templates/js/translated/order.js:1527
msgid "Edit shipment"
msgstr ""
-#: templates/js/translated/order.js:1442
+#: templates/js/translated/order.js:1530
msgid "Complete shipment"
msgstr ""
-#: templates/js/translated/order.js:1447
+#: templates/js/translated/order.js:1535
msgid "Delete shipment"
msgstr ""
-#: templates/js/translated/order.js:1467
+#: templates/js/translated/order.js:1555
msgid "Edit Shipment"
msgstr ""
-#: templates/js/translated/order.js:1484
+#: templates/js/translated/order.js:1572
msgid "Delete Shipment"
msgstr ""
-#: templates/js/translated/order.js:1518
+#: templates/js/translated/order.js:1606
msgid "No matching shipments found"
msgstr ""
-#: templates/js/translated/order.js:1528
+#: templates/js/translated/order.js:1616
msgid "Shipment Reference"
msgstr ""
-#: templates/js/translated/order.js:1552
+#: templates/js/translated/order.js:1640
msgid "Not shipped"
msgstr ""
-#: templates/js/translated/order.js:1558
+#: templates/js/translated/order.js:1646
msgid "Tracking"
msgstr ""
-#: templates/js/translated/order.js:1718
+#: templates/js/translated/order.js:1806
msgid "Allocate Stock Items to Sales Order"
msgstr ""
-#: templates/js/translated/order.js:1926
+#: templates/js/translated/order.js:2014
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:2015
+#: templates/js/translated/order.js:2103
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:2032
+#: templates/js/translated/order.js:2120
msgid "Confirm Delete Operation"
msgstr ""
-#: templates/js/translated/order.js:2033
+#: templates/js/translated/order.js:2121
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:2076 templates/js/translated/order.js:2165
-#: templates/js/translated/stock.js:1559
+#: templates/js/translated/order.js:2164 templates/js/translated/order.js:2253
+#: templates/js/translated/stock.js:1515
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/order.js:2084 templates/js/translated/order.js:2174
+#: templates/js/translated/order.js:2172 templates/js/translated/order.js:2262
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:2436
+#: templates/js/translated/order.js:2524
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:2442
+#: templates/js/translated/order.js:2530
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:2449 templates/js/translated/order.js:2616
+#: templates/js/translated/order.js:2537 templates/js/translated/order.js:2727
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:2460
+#: templates/js/translated/order.js:2549
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:2463
+#: templates/js/translated/order.js:2552
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:2522
+#: templates/js/translated/order.js:2633
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:2624
+#: templates/js/translated/order.js:2735
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:2638
+#: templates/js/translated/order.js:2749
msgid "No matching line items"
msgstr ""
@@ -8677,117 +8748,117 @@ msgstr ""
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:481
+#: templates/js/translated/part.js:482
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:509 templates/js/translated/part.js:594
+#: templates/js/translated/part.js:510 templates/js/translated/part.js:595
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:513 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:514 templates/js/translated/part.js:599
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:525
+#: templates/js/translated/part.js:526
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:529
+#: templates/js/translated/part.js:530
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:644
+#: templates/js/translated/part.js:645
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1034
+#: templates/js/translated/part.js:1035
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1058
+#: templates/js/translated/part.js:1059
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1125 templates/js/translated/part.js:1385
+#: templates/js/translated/part.js:1126 templates/js/translated/part.js:1386
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1295
+#: templates/js/translated/part.js:1296
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:1318
+#: templates/js/translated/part.js:1319
#: templates/js/translated/table_filters.js:425
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1409 templates/js/translated/part.js:1581
-#: templates/js/translated/stock.js:2572
+#: templates/js/translated/part.js:1410 templates/js/translated/part.js:1582
+#: templates/js/translated/stock.js:2528
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1425
+#: templates/js/translated/part.js:1426
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1600 templates/js/translated/stock.js:2591
+#: templates/js/translated/part.js:1601 templates/js/translated/stock.js:2547
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1664
+#: templates/js/translated/part.js:1665
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1678 templates/js/translated/stock.js:2635
+#: templates/js/translated/part.js:1679 templates/js/translated/stock.js:2591
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1722
+#: templates/js/translated/part.js:1723
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1773 templates/js/translated/stock.js:1270
+#: templates/js/translated/part.js:1774 templates/js/translated/stock.js:1226
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1774 templates/js/translated/stock.js:1271
-#: templates/js/translated/stock.js:1517
+#: templates/js/translated/part.js:1775 templates/js/translated/stock.js:1227
+#: templates/js/translated/stock.js:1473
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1780
+#: templates/js/translated/part.js:1781
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1802
+#: templates/js/translated/part.js:1803
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1816
+#: templates/js/translated/part.js:1817
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1841
+#: templates/js/translated/part.js:1842
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1896
+#: templates/js/translated/part.js:1897
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1897
+#: templates/js/translated/part.js:1898
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1998
+#: templates/js/translated/part.js:1999
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:2017
+#: templates/js/translated/part.js:2018
msgid "Single Price Difference"
msgstr ""
@@ -8861,368 +8932,356 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:102
+#: templates/js/translated/stock.js:101
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:111
+#: templates/js/translated/stock.js:110
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:154
+#: templates/js/translated/stock.js:153
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:194
+#: templates/js/translated/stock.js:193
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:233
+#: templates/js/translated/stock.js:232
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/stock.js:238
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:381
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:395
+#: templates/js/translated/stock.js:394
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:420
+#: templates/js/translated/stock.js:419
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425
+#: templates/js/translated/stock.js:423 templates/js/translated/stock.js:424
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:441
+#: templates/js/translated/stock.js:440
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:461
+#: templates/js/translated/stock.js:460
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:470
+#: templates/js/translated/stock.js:469
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:515
-msgid "Export Stock"
-msgstr ""
-
-#: templates/js/translated/stock.js:526
-msgid "Include Sublocations"
-msgstr ""
-
-#: templates/js/translated/stock.js:527
-msgid "Include stock items in sublocations"
-msgstr ""
-
-#: templates/js/translated/stock.js:636
+#: templates/js/translated/stock.js:592
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:637
+#: templates/js/translated/stock.js:593
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:714
+#: templates/js/translated/stock.js:670
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:715
+#: templates/js/translated/stock.js:671
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:717
+#: templates/js/translated/stock.js:673
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:718
+#: templates/js/translated/stock.js:674
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:804
+#: templates/js/translated/stock.js:760
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:805
+#: templates/js/translated/stock.js:761
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:900
+#: templates/js/translated/stock.js:856
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:901
+#: templates/js/translated/stock.js:857
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:907
+#: templates/js/translated/stock.js:863
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:908
+#: templates/js/translated/stock.js:864
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:912
+#: templates/js/translated/stock.js:868
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:913
+#: templates/js/translated/stock.js:869
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:917
+#: templates/js/translated/stock.js:873
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:918 users/models.py:213
+#: templates/js/translated/stock.js:874 users/models.py:213
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:922
+#: templates/js/translated/stock.js:878
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1011
+#: templates/js/translated/stock.js:967
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1011
+#: templates/js/translated/stock.js:967
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1051
+#: templates/js/translated/stock.js:1007
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1209
+#: templates/js/translated/stock.js:1165
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1211
+#: templates/js/translated/stock.js:1167
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1216
+#: templates/js/translated/stock.js:1172
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1263
+#: templates/js/translated/stock.js:1219
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1266
+#: templates/js/translated/stock.js:1222
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1292
+#: templates/js/translated/stock.js:1248
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1348
+#: templates/js/translated/stock.js:1304
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1500
+#: templates/js/translated/stock.js:1456
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1522
+#: templates/js/translated/stock.js:1478
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1551
+#: templates/js/translated/stock.js:1507
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1511
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1563
+#: templates/js/translated/stock.js:1519
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1569
+#: templates/js/translated/stock.js:1525
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:1727
+#: templates/js/translated/stock.js:1683
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:1732
+#: templates/js/translated/stock.js:1688
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1691
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1739
+#: templates/js/translated/stock.js:1695
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1741
+#: templates/js/translated/stock.js:1697
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1747
+#: templates/js/translated/stock.js:1703
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1749
+#: templates/js/translated/stock.js:1705
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1751
+#: templates/js/translated/stock.js:1707
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1756
+#: templates/js/translated/stock.js:1712
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1763
+#: templates/js/translated/stock.js:1719
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1765
+#: templates/js/translated/stock.js:1721
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1767
+#: templates/js/translated/stock.js:1723
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1771
+#: templates/js/translated/stock.js:1727
#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1821
+#: templates/js/translated/stock.js:1777
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1903
+#: templates/js/translated/stock.js:1859
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1941
+#: templates/js/translated/stock.js:1897
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1962 templates/js/translated/stock.js:2010
+#: templates/js/translated/stock.js:1918 templates/js/translated/stock.js:1966
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:2050
+#: templates/js/translated/stock.js:2006
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:2077
+#: templates/js/translated/stock.js:2033
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:2079
+#: templates/js/translated/stock.js:2035
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:2278
+#: templates/js/translated/stock.js:2234
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2292
+#: templates/js/translated/stock.js:2248
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2293
+#: templates/js/translated/stock.js:2249
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2472
+#: templates/js/translated/stock.js:2428
msgid "Allocated Quantity"
msgstr ""
-#: templates/js/translated/stock.js:2682
+#: templates/js/translated/stock.js:2638
msgid "Details"
msgstr ""
-#: templates/js/translated/stock.js:2707
+#: templates/js/translated/stock.js:2663
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2726
+#: templates/js/translated/stock.js:2682
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2745
+#: templates/js/translated/stock.js:2701
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2763
+#: templates/js/translated/stock.js:2719
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2786
+#: templates/js/translated/stock.js:2742
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2794
+#: templates/js/translated/stock.js:2750
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2835
+#: templates/js/translated/stock.js:2791
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2836
+#: templates/js/translated/stock.js:2792
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2887
+#: templates/js/translated/stock.js:2843
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2938
+#: templates/js/translated/stock.js:2894
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2974
+#: templates/js/translated/stock.js:2930
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2975
+#: templates/js/translated/stock.js:2931
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2977
+#: templates/js/translated/stock.js:2933
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2978
+#: templates/js/translated/stock.js:2934
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2979
+#: templates/js/translated/stock.js:2935
msgid "The Stock Item is serialized and does not belong to another item"
msgstr ""
-#: templates/js/translated/stock.js:2992
+#: templates/js/translated/stock.js:2948
msgid "Select part to install"
msgstr ""
@@ -9429,60 +9488,68 @@ msgstr ""
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:368
+#: templates/js/translated/tables.js:50
+msgid "Export Table Data"
+msgstr ""
+
+#: templates/js/translated/tables.js:54
+msgid "Select File Format"
+msgstr ""
+
+#: templates/js/translated/tables.js:433
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:371
+#: templates/js/translated/tables.js:436
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:376
+#: templates/js/translated/tables.js:441
msgid "Showing all rows"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:382 templates/search_form.html:6
+#: templates/js/translated/tables.js:447 templates/search_form.html:6
#: templates/search_form.html:7
msgid "Search"
msgstr ""
-#: templates/js/translated/tables.js:385
+#: templates/js/translated/tables.js:450
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:388
+#: templates/js/translated/tables.js:453
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:391
+#: templates/js/translated/tables.js:456
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:394
+#: templates/js/translated/tables.js:459
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:397
+#: templates/js/translated/tables.js:462
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:400
+#: templates/js/translated/tables.js:465
msgid "All"
msgstr ""
@@ -9586,63 +9653,59 @@ msgstr ""
msgid "Email settings not configured"
msgstr ""
-#: templates/stock_table.html:14
-msgid "Export Stock Information"
-msgstr ""
-
-#: templates/stock_table.html:20
+#: templates/stock_table.html:17
msgid "Barcode Actions"
msgstr ""
-#: templates/stock_table.html:36
+#: templates/stock_table.html:33
msgid "Print test reports"
msgstr ""
-#: templates/stock_table.html:43
+#: templates/stock_table.html:40
msgid "Stock Options"
msgstr ""
-#: templates/stock_table.html:48
+#: templates/stock_table.html:45
msgid "Add to selected stock items"
msgstr ""
-#: templates/stock_table.html:49
+#: templates/stock_table.html:46
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:50
+#: templates/stock_table.html:47
msgid "Stocktake selected stock items"
msgstr ""
-#: templates/stock_table.html:51
+#: templates/stock_table.html:48
msgid "Move selected stock items"
msgstr ""
-#: templates/stock_table.html:52
+#: templates/stock_table.html:49
msgid "Merge selected stock items"
msgstr ""
-#: templates/stock_table.html:52
+#: templates/stock_table.html:49
msgid "Merge stock"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:50
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:52
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:52
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:55
msgid "Delete selected items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:55
msgid "Delete stock"
msgstr ""
diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.po b/InvenTree/locale/zh/LC_MESSAGES/django.po
index 2226cf10c4..58c2e559da 100644
--- a/InvenTree/locale/zh/LC_MESSAGES/django.po
+++ b/InvenTree/locale/zh/LC_MESSAGES/django.po
@@ -1,10 +1,10 @@
-#: templates/js/translated/order.js:2090
+#: templates/js/translated/order.js:2178
msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-03-01 13:34+0000\n"
-"PO-Revision-Date: 2022-03-01 14:09\n"
+"POT-Creation-Date: 2022-03-07 04:31+0000\n"
+"PO-Revision-Date: 2022-03-07 04:47\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"Language: zh_CN\n"
@@ -86,7 +86,7 @@ msgid "Duplicate serial: {sn}"
msgstr ""
#: InvenTree/helpers.py:449 order/models.py:282 order/models.py:435
-#: stock/views.py:1101
+#: stock/views.py:983
msgid "Invalid quantity provided"
msgstr "提供的数量无效"
@@ -114,100 +114,100 @@ msgstr "未找到序列号"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "唯一序列号 ({s}) 必须匹配数量 ({q})"
-#: InvenTree/models.py:176
+#: InvenTree/models.py:185
msgid "Missing file"
msgstr "缺少文件"
-#: InvenTree/models.py:177
+#: InvenTree/models.py:186
msgid "Missing external link"
msgstr ""
-#: InvenTree/models.py:188 stock/models.py:2071
+#: InvenTree/models.py:197 stock/models.py:2123
#: templates/js/translated/attachment.js:119
msgid "Attachment"
msgstr "附件"
-#: InvenTree/models.py:189
+#: InvenTree/models.py:198
msgid "Select file to attach"
msgstr "选择附件"
-#: InvenTree/models.py:195 company/models.py:131 company/models.py:348
+#: InvenTree/models.py:204 company/models.py:131 company/models.py:348
#: company/models.py:564 order/models.py:127 part/models.py:860
#: report/templates/report/inventree_build_order_base.html:165
#: templates/js/translated/company.js:540
-#: templates/js/translated/company.js:829 templates/js/translated/part.js:1346
+#: templates/js/translated/company.js:829 templates/js/translated/part.js:1347
msgid "Link"
msgstr "链接"
-#: InvenTree/models.py:196 build/models.py:330 part/models.py:861
-#: stock/models.py:566
+#: InvenTree/models.py:205 build/models.py:332 part/models.py:861
+#: stock/models.py:618
msgid "Link to external URL"
msgstr "链接到外部 URL"
-#: InvenTree/models.py:199 templates/js/translated/attachment.js:163
+#: InvenTree/models.py:208 templates/js/translated/attachment.js:163
msgid "Comment"
msgstr "注释"
-#: InvenTree/models.py:199
+#: InvenTree/models.py:208
msgid "File comment"
msgstr "文件注释"
-#: InvenTree/models.py:205 InvenTree/models.py:206 common/models.py:1277
+#: InvenTree/models.py:214 InvenTree/models.py:215 common/models.py:1277
#: common/models.py:1278 common/models.py:1506 common/models.py:1507
-#: part/models.py:2303 part/models.py:2323
+#: part/models.py:2317 part/models.py:2337
#: report/templates/report/inventree_test_report_base.html:96
-#: templates/js/translated/stock.js:2817
+#: templates/js/translated/stock.js:2773
msgid "User"
msgstr "用户"
-#: InvenTree/models.py:209
+#: InvenTree/models.py:218
msgid "upload date"
msgstr "上传日期"
-#: InvenTree/models.py:232
+#: InvenTree/models.py:241
msgid "Filename must not be empty"
msgstr "文件名不能为空!"
-#: InvenTree/models.py:255
+#: InvenTree/models.py:264
msgid "Invalid attachment directory"
msgstr "非法的附件目录"
-#: InvenTree/models.py:265
+#: InvenTree/models.py:274
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "文件名包含非法字符 '{c}'"
-#: InvenTree/models.py:268
+#: InvenTree/models.py:277
msgid "Filename missing extension"
msgstr "缺少文件名扩展"
-#: InvenTree/models.py:275
+#: InvenTree/models.py:284
msgid "Attachment with this filename already exists"
msgstr "使用此文件名的附件已存在"
-#: InvenTree/models.py:282
+#: InvenTree/models.py:291
msgid "Error renaming file"
msgstr "重命名文件出错"
-#: InvenTree/models.py:317
+#: InvenTree/models.py:326
msgid "Invalid choice"
msgstr "选择无效"
-#: InvenTree/models.py:333 InvenTree/models.py:334 common/models.py:1492
+#: InvenTree/models.py:342 InvenTree/models.py:343 common/models.py:1492
#: company/models.py:415 label/models.py:112 part/models.py:804
-#: part/models.py:2487 plugin/models.py:40 report/models.py:181
+#: part/models.py:2501 plugin/models.py:40 report/models.py:181
#: templates/InvenTree/settings/mixins/urls.html:13
#: templates/InvenTree/settings/plugin.html:48
#: templates/InvenTree/settings/plugin.html:125
#: templates/InvenTree/settings/plugin_settings.html:23
#: templates/InvenTree/settings/settings.html:319
-#: templates/js/translated/company.js:641 templates/js/translated/part.js:567
-#: templates/js/translated/part.js:706 templates/js/translated/part.js:1653
-#: templates/js/translated/stock.js:2617
+#: templates/js/translated/company.js:641 templates/js/translated/part.js:568
+#: templates/js/translated/part.js:707 templates/js/translated/part.js:1654
+#: templates/js/translated/stock.js:2573
msgid "Name"
msgstr "名称"
-#: InvenTree/models.py:340 build/models.py:207
+#: InvenTree/models.py:349 build/models.py:209
#: build/templates/build/detail.html:25 company/models.py:354
#: company/models.py:570 company/templates/company/company_base.html:68
#: company/templates/company/manufacturer_part.html:76
@@ -219,28 +219,28 @@ msgstr "名称"
#: report/templates/report/inventree_build_order_base.html:118
#: stock/templates/stock/location.html:92
#: templates/InvenTree/settings/plugin_settings.html:33
-#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:765
-#: templates/js/translated/build.js:1920 templates/js/translated/company.js:345
+#: templates/js/translated/bom.js:552 templates/js/translated/bom.js:763
+#: templates/js/translated/build.js:1973 templates/js/translated/company.js:345
#: templates/js/translated/company.js:551
-#: templates/js/translated/company.js:840 templates/js/translated/order.js:911
-#: templates/js/translated/order.js:1105 templates/js/translated/order.js:1366
-#: templates/js/translated/part.js:626 templates/js/translated/part.js:1021
-#: templates/js/translated/part.js:1106 templates/js/translated/part.js:1276
-#: templates/js/translated/part.js:1672 templates/js/translated/part.js:1741
-#: templates/js/translated/stock.js:1700 templates/js/translated/stock.js:2446
-#: templates/js/translated/stock.js:2629 templates/js/translated/stock.js:2667
+#: templates/js/translated/company.js:840 templates/js/translated/order.js:971
+#: templates/js/translated/order.js:1192 templates/js/translated/order.js:1454
+#: templates/js/translated/part.js:627 templates/js/translated/part.js:1022
+#: templates/js/translated/part.js:1107 templates/js/translated/part.js:1277
+#: templates/js/translated/part.js:1673 templates/js/translated/part.js:1742
+#: templates/js/translated/stock.js:1656 templates/js/translated/stock.js:2402
+#: templates/js/translated/stock.js:2585 templates/js/translated/stock.js:2623
msgid "Description"
msgstr "描述信息"
-#: InvenTree/models.py:341
+#: InvenTree/models.py:350
msgid "Description (optional)"
msgstr "描述 (可选)"
-#: InvenTree/models.py:349
+#: InvenTree/models.py:358
msgid "parent"
msgstr "上级项"
-#: InvenTree/serializers.py:65 part/models.py:2805
+#: InvenTree/serializers.py:65 part/models.py:2820
msgid "Must be a valid number"
msgstr "必须是有效数字"
@@ -294,87 +294,87 @@ msgstr ""
msgid "Duplicate column: '{col}'"
msgstr ""
-#: InvenTree/settings.py:663
+#: InvenTree/settings.py:665
msgid "German"
msgstr "德语"
-#: InvenTree/settings.py:664
+#: InvenTree/settings.py:666
msgid "Greek"
msgstr "希腊语"
-#: InvenTree/settings.py:665
+#: InvenTree/settings.py:667
msgid "English"
msgstr "英语"
-#: InvenTree/settings.py:666
+#: InvenTree/settings.py:668
msgid "Spanish"
msgstr "西班牙语"
-#: InvenTree/settings.py:667
+#: InvenTree/settings.py:669
msgid "Spanish (Mexican)"
msgstr ""
-#: InvenTree/settings.py:668
+#: InvenTree/settings.py:670
msgid "French"
msgstr "法语"
-#: InvenTree/settings.py:669
+#: InvenTree/settings.py:671
msgid "Hebrew"
msgstr "希伯来语"
-#: InvenTree/settings.py:670
+#: InvenTree/settings.py:672
msgid "Hungarian"
msgstr ""
-#: InvenTree/settings.py:671
+#: InvenTree/settings.py:673
msgid "Italian"
msgstr "意大利语"
-#: InvenTree/settings.py:672
+#: InvenTree/settings.py:674
msgid "Japanese"
msgstr "日语"
-#: InvenTree/settings.py:673
+#: InvenTree/settings.py:675
msgid "Korean"
msgstr "韩语"
-#: InvenTree/settings.py:674
+#: InvenTree/settings.py:676
msgid "Dutch"
msgstr "荷兰语"
-#: InvenTree/settings.py:675
+#: InvenTree/settings.py:677
msgid "Norwegian"
msgstr "挪威语"
-#: InvenTree/settings.py:676
+#: InvenTree/settings.py:678
msgid "Polish"
msgstr "波兰语"
-#: InvenTree/settings.py:677
+#: InvenTree/settings.py:679
msgid "Portugese"
msgstr ""
-#: InvenTree/settings.py:678
+#: InvenTree/settings.py:680
msgid "Russian"
msgstr "俄语"
-#: InvenTree/settings.py:679
+#: InvenTree/settings.py:681
msgid "Swedish"
msgstr "瑞典语"
-#: InvenTree/settings.py:680
+#: InvenTree/settings.py:682
msgid "Thai"
msgstr "泰语"
-#: InvenTree/settings.py:681
+#: InvenTree/settings.py:683
msgid "Turkish"
msgstr "土耳其语"
-#: InvenTree/settings.py:682
+#: InvenTree/settings.py:684
msgid "Vietnamese"
msgstr "越南语"
-#: InvenTree/settings.py:683
+#: InvenTree/settings.py:685
msgid "Chinese"
msgstr "中文(简体)"
@@ -421,7 +421,7 @@ msgid "Returned"
msgstr "已退回"
#: InvenTree/status_codes.py:143 order/models.py:997
-#: templates/js/translated/order.js:2097 templates/js/translated/order.js:2394
+#: templates/js/translated/order.js:2185 templates/js/translated/order.js:2482
msgid "Shipped"
msgstr "已发货"
@@ -501,7 +501,7 @@ msgstr "从父项拆分"
msgid "Split child item"
msgstr "拆分子项"
-#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2204
+#: InvenTree/status_codes.py:295 templates/js/translated/stock.js:2160
msgid "Merged stock items"
msgstr ""
@@ -593,43 +593,43 @@ msgstr "密码字段必须相匹配。"
msgid "System Information"
msgstr "系统信息"
-#: barcodes/api.py:54 barcodes/api.py:152
+#: barcodes/api.py:55 barcodes/api.py:156
msgid "Must provide barcode_data parameter"
msgstr "必须提供条码数据参数"
-#: barcodes/api.py:128
+#: barcodes/api.py:132
msgid "No match found for barcode data"
msgstr "未找到匹配条形码数据"
-#: barcodes/api.py:130
+#: barcodes/api.py:134
msgid "Match found for barcode data"
msgstr "找到匹配条形码数据"
-#: barcodes/api.py:155
+#: barcodes/api.py:159
msgid "Must provide stockitem parameter"
msgstr "必须提供库存项参数"
-#: barcodes/api.py:162
+#: barcodes/api.py:166
msgid "No matching stock item found"
msgstr "未找到匹配的库存项"
-#: barcodes/api.py:193
+#: barcodes/api.py:197
msgid "Barcode already matches Stock Item"
msgstr ""
-#: barcodes/api.py:197
+#: barcodes/api.py:201
msgid "Barcode already matches Stock Location"
msgstr ""
-#: barcodes/api.py:201
+#: barcodes/api.py:205
msgid "Barcode already matches Part"
msgstr ""
-#: barcodes/api.py:207 barcodes/api.py:219
+#: barcodes/api.py:211 barcodes/api.py:223
msgid "Barcode hash already matches Stock Item"
msgstr ""
-#: barcodes/api.py:225
+#: barcodes/api.py:229
msgid "Barcode associated with Stock Item"
msgstr ""
@@ -641,18 +641,18 @@ msgstr "确认取消"
msgid "Confirm build cancellation"
msgstr "确认生产取消"
-#: build/models.py:133
+#: build/models.py:135
msgid "Invalid choice for parent build"
msgstr "上级生产选项无效"
-#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/models.py:139 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:676 templates/js/translated/stock.js:2422
+#: templates/js/translated/build.js:677 templates/js/translated/stock.js:2378
msgid "Build Order"
msgstr "生产订单"
-#: build/models.py:138 build/templates/build/build_base.html:13
+#: build/models.py:140 build/templates/build/build_base.html:13
#: build/templates/build/index.html:8 build/templates/build/index.html:12
#: order/templates/order/sales_order_detail.html:92
#: order/templates/order/so_sidebar.html:13
@@ -662,41 +662,41 @@ msgstr "生产订单"
msgid "Build Orders"
msgstr "生产订单"
-#: build/models.py:198
+#: build/models.py:200
msgid "Build Order Reference"
msgstr "相关生产订单"
-#: build/models.py:199 order/models.py:213 order/models.py:563
-#: order/models.py:843 part/models.py:2716
+#: build/models.py:201 order/models.py:213 order/models.py:563
+#: order/models.py:843 part/models.py:2731
#: part/templates/part/upload_bom.html:54
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:772 templates/js/translated/build.js:1401
-#: templates/js/translated/order.js:1136 templates/js/translated/order.js:2261
+#: templates/js/translated/bom.js:770 templates/js/translated/build.js:1402
+#: templates/js/translated/order.js:1223 templates/js/translated/order.js:2349
msgid "Reference"
msgstr "引用"
-#: build/models.py:210
+#: build/models.py:212
msgid "Brief description of the build"
msgstr "生产的简短描述."
-#: build/models.py:219 build/templates/build/build_base.html:169
+#: build/models.py:221 build/templates/build/build_base.html:169
#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr "上级生产"
-#: build/models.py:220
+#: build/models.py:222
msgid "BuildOrder to which this build is allocated"
msgstr "此次生产匹配的订单"
-#: build/models.py:225 build/templates/build/build_base.html:77
+#: build/models.py:227 build/templates/build/build_base.html:77
#: build/templates/build/detail.html:30 company/models.py:705
#: order/models.py:912 order/models.py:986
#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:359
-#: part/models.py:2249 part/models.py:2265 part/models.py:2284
-#: part/models.py:2301 part/models.py:2403 part/models.py:2525
-#: part/models.py:2615 part/models.py:2691 part/models.py:2998
-#: part/serializers.py:666 part/templates/part/part_app_base.html:8
+#: part/models.py:2263 part/models.py:2279 part/models.py:2298
+#: part/models.py:2315 part/models.py:2417 part/models.py:2539
+#: part/models.py:2629 part/models.py:2706 part/models.py:3013
+#: part/serializers.py:669 part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: part/templates/part/upload_bom.html:52
@@ -707,231 +707,231 @@ msgstr "此次生产匹配的订单"
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:551
-#: templates/js/translated/bom.js:730 templates/js/translated/build.js:902
-#: templates/js/translated/build.js:1270 templates/js/translated/build.js:1655
-#: templates/js/translated/build.js:1925 templates/js/translated/company.js:492
+#: templates/js/translated/bom.js:728 templates/js/translated/build.js:903
+#: templates/js/translated/build.js:1271 templates/js/translated/build.js:1666
+#: templates/js/translated/build.js:1978 templates/js/translated/company.js:492
#: templates/js/translated/company.js:749 templates/js/translated/order.js:84
-#: templates/js/translated/order.js:651 templates/js/translated/order.js:1090
-#: templates/js/translated/order.js:1693 templates/js/translated/order.js:2050
-#: templates/js/translated/order.js:2245 templates/js/translated/part.js:1006
-#: templates/js/translated/part.js:1087 templates/js/translated/part.js:1254
-#: templates/js/translated/stock.js:562 templates/js/translated/stock.js:727
-#: templates/js/translated/stock.js:934 templates/js/translated/stock.js:1657
-#: templates/js/translated/stock.js:2892 templates/js/translated/stock.js:2991
+#: templates/js/translated/order.js:711 templates/js/translated/order.js:1177
+#: templates/js/translated/order.js:1781 templates/js/translated/order.js:2138
+#: templates/js/translated/order.js:2333 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1088 templates/js/translated/part.js:1255
+#: templates/js/translated/stock.js:518 templates/js/translated/stock.js:683
+#: templates/js/translated/stock.js:890 templates/js/translated/stock.js:1613
+#: templates/js/translated/stock.js:2848 templates/js/translated/stock.js:2947
msgid "Part"
msgstr "商品"
-#: build/models.py:233
+#: build/models.py:235
msgid "Select part to build"
msgstr "选择要生产的商品"
-#: build/models.py:238
+#: build/models.py:240
msgid "Sales Order Reference"
msgstr "相关销售订单"
-#: build/models.py:242
+#: build/models.py:244
msgid "SalesOrder to which this build is allocated"
msgstr "此次生产匹配的销售订单"
-#: build/models.py:247 templates/js/translated/build.js:1643
-#: templates/js/translated/order.js:1681
+#: build/models.py:249 build/serializers.py:729
+#: templates/js/translated/build.js:1654 templates/js/translated/order.js:1769
msgid "Source Location"
msgstr "来源地点"
-#: build/models.py:251
+#: build/models.py:253
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:256
+#: build/models.py:258
msgid "Destination Location"
msgstr "目标地点"
-#: build/models.py:260
+#: build/models.py:262
msgid "Select location where the completed items will be stored"
msgstr "选择已完成项目仓储地点"
-#: build/models.py:264
+#: build/models.py:266
msgid "Build Quantity"
msgstr "生产数量"
-#: build/models.py:267
+#: build/models.py:269
msgid "Number of stock items to build"
msgstr "要生产的项目数量"
-#: build/models.py:271
+#: build/models.py:273
msgid "Completed items"
msgstr "已完成项目"
-#: build/models.py:273
+#: build/models.py:275
msgid "Number of stock items which have been completed"
msgstr "已完成的库存项目数量"
-#: build/models.py:277 part/templates/part/part_base.html:234
+#: build/models.py:279 part/templates/part/part_base.html:234
msgid "Build Status"
msgstr "生产状态"
-#: build/models.py:281
+#: build/models.py:283
msgid "Build status code"
msgstr "生产状态代码"
-#: build/models.py:285 build/serializers.py:218 order/serializers.py:272
-#: stock/models.py:570 templates/js/translated/order.js:513
+#: build/models.py:287 build/serializers.py:218 order/serializers.py:272
+#: stock/models.py:622 templates/js/translated/order.js:573
msgid "Batch Code"
msgstr "批量代码"
-#: build/models.py:289 build/serializers.py:219
+#: build/models.py:291 build/serializers.py:219
msgid "Batch code for this build output"
msgstr "此生产产出的批量代码"
-#: build/models.py:292 order/models.py:129 part/models.py:999
-#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1379
+#: build/models.py:294 order/models.py:129 part/models.py:999
+#: part/templates/part/part_base.html:313 templates/js/translated/order.js:1467
msgid "Creation Date"
msgstr "创建日期"
-#: build/models.py:296 order/models.py:585
+#: build/models.py:298 order/models.py:585
msgid "Target completion date"
msgstr "预计完成日期"
-#: build/models.py:297
+#: build/models.py:299
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "生产完成的目标日期。生产将在此日期之后逾期。"
-#: build/models.py:300 order/models.py:255
-#: templates/js/translated/build.js:2002
+#: build/models.py:302 order/models.py:255
+#: templates/js/translated/build.js:2055
msgid "Completion Date"
msgstr "完成日期:"
-#: build/models.py:306
+#: build/models.py:308
msgid "completed by"
msgstr "完成人"
-#: build/models.py:314 templates/js/translated/build.js:1970
+#: build/models.py:316 templates/js/translated/build.js:2023
msgid "Issued by"
msgstr "发布者"
-#: build/models.py:315
+#: build/models.py:317
msgid "User who issued this build order"
msgstr "发布此生产订单的用户"
-#: build/models.py:323 build/templates/build/build_base.html:190
+#: build/models.py:325 build/templates/build/build_base.html:190
#: build/templates/build/detail.html:116 order/models.py:143
#: order/templates/order/order_base.html:170
#: order/templates/order/sales_order_base.html:182 part/models.py:1003
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1982 templates/js/translated/order.js:945
+#: templates/js/translated/build.js:2035 templates/js/translated/order.js:1005
msgid "Responsible"
msgstr "责任人"
-#: build/models.py:324
+#: build/models.py:326
msgid "User responsible for this build order"
msgstr "负责此生产订单的用户"
-#: build/models.py:329 build/templates/build/detail.html:102
+#: build/models.py:331 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:102
#: company/templates/company/supplier_part.html:126
-#: part/templates/part/part_base.html:354 stock/models.py:564
+#: part/templates/part/part_base.html:354 stock/models.py:616
#: stock/templates/stock/item_base.html:352
msgid "External Link"
msgstr "外部链接"
-#: build/models.py:334 build/serializers.py:381
+#: build/models.py:336 build/serializers.py:381
#: build/templates/build/sidebar.html:21 company/models.py:142
#: company/models.py:577 company/templates/company/sidebar.html:25
#: order/models.py:147 order/models.py:845 order/models.py:1107
#: order/templates/order/po_sidebar.html:11
#: order/templates/order/so_sidebar.html:17 part/models.py:988
-#: part/templates/part/detail.html:146 part/templates/part/part_sidebar.html:57
+#: part/templates/part/detail.html:141 part/templates/part/part_sidebar.html:57
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:137 stock/forms.py:171 stock/models.py:636
-#: stock/models.py:1971 stock/models.py:2077 stock/serializers.py:332
+#: stock/forms.py:137 stock/forms.py:171 stock/models.py:688
+#: stock/models.py:2023 stock/models.py:2129 stock/serializers.py:332
#: stock/serializers.py:697 stock/serializers.py:795 stock/serializers.py:927
#: stock/templates/stock/stock_sidebar.html:25
-#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:936
-#: templates/js/translated/company.js:845 templates/js/translated/order.js:1257
-#: templates/js/translated/order.js:1562 templates/js/translated/order.js:2419
-#: templates/js/translated/stock.js:1344 templates/js/translated/stock.js:1935
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:934
+#: templates/js/translated/company.js:845 templates/js/translated/order.js:1344
+#: templates/js/translated/order.js:1650 templates/js/translated/order.js:2507
+#: templates/js/translated/stock.js:1300 templates/js/translated/stock.js:1891
msgid "Notes"
msgstr "备注"
-#: build/models.py:335
+#: build/models.py:337
msgid "Extra build notes"
msgstr "额外的生产备注"
-#: build/models.py:748
+#: build/models.py:750
msgid "No build output specified"
msgstr "未指定生产产出"
-#: build/models.py:751
+#: build/models.py:753
msgid "Build output is already completed"
msgstr "生产产出已完成"
-#: build/models.py:754
+#: build/models.py:756
msgid "Build output does not match Build Order"
msgstr "生产产出与订单不匹配"
-#: build/models.py:1060
+#: build/models.py:1162
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1069
+#: build/models.py:1171
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1079
+#: build/models.py:1181
msgid "Stock item is over-allocated"
msgstr "库存物品分配过度!"
-#: build/models.py:1085 order/models.py:1225
+#: build/models.py:1187 order/models.py:1225
msgid "Allocation quantity must be greater than zero"
msgstr "分配数量必须大于0"
-#: build/models.py:1091
+#: build/models.py:1193
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1148
+#: build/models.py:1250
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1217 stock/templates/stock/item_base.html:324
-#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1898
+#: build/models.py:1319 stock/templates/stock/item_base.html:324
+#: templates/InvenTree/search.html:137 templates/js/translated/build.js:1951
#: templates/navbar.html:35
msgid "Build"
msgstr "生产"
-#: build/models.py:1218
+#: build/models.py:1320
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1234 build/serializers.py:576 order/serializers.py:783
+#: build/models.py:1336 build/serializers.py:576 order/serializers.py:783
#: order/serializers.py:801 stock/serializers.py:404 stock/serializers.py:635
#: stock/serializers.py:753 stock/templates/stock/item_base.html:9
#: stock/templates/stock/item_base.html:23
#: stock/templates/stock/item_base.html:346
-#: templates/js/translated/build.js:687 templates/js/translated/build.js:692
-#: templates/js/translated/build.js:1657 templates/js/translated/build.js:2050
-#: templates/js/translated/order.js:85 templates/js/translated/order.js:1694
-#: templates/js/translated/order.js:1949 templates/js/translated/order.js:1954
-#: templates/js/translated/order.js:2057 templates/js/translated/order.js:2147
-#: templates/js/translated/stock.js:563 templates/js/translated/stock.js:728
-#: templates/js/translated/stock.js:2753
+#: templates/js/translated/build.js:688 templates/js/translated/build.js:693
+#: templates/js/translated/build.js:1668 templates/js/translated/build.js:2103
+#: templates/js/translated/order.js:85 templates/js/translated/order.js:1782
+#: templates/js/translated/order.js:2037 templates/js/translated/order.js:2042
+#: templates/js/translated/order.js:2145 templates/js/translated/order.js:2235
+#: templates/js/translated/stock.js:519 templates/js/translated/stock.js:684
+#: templates/js/translated/stock.js:2709
msgid "Stock Item"
msgstr "库存项"
-#: build/models.py:1235
+#: build/models.py:1337
msgid "Source stock item"
msgstr "源库存项"
-#: build/models.py:1247 build/serializers.py:188
+#: build/models.py:1349 build/serializers.py:188
#: build/templates/build/build_base.html:82
#: build/templates/build/detail.html:35 common/models.py:1317
#: company/forms.py:42 company/templates/company/supplier_part.html:251
#: order/models.py:836 order/models.py:1265 order/serializers.py:903
#: order/templates/order/order_wizard/match_parts.html:30
#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:144
-#: part/forms.py:160 part/forms.py:176 part/models.py:2707
-#: part/templates/part/detail.html:1008 part/templates/part/detail.html:1094
+#: part/forms.py:160 part/forms.py:176 part/models.py:2722
+#: part/templates/part/detail.html:994 part/templates/part/detail.html:1080
#: part/templates/part/part_pricing.html:16
#: part/templates/part/upload_bom.html:53
#: report/templates/report/inventree_build_order_base.html:114
@@ -943,32 +943,32 @@ msgstr "源库存项"
#: stock/templates/stock/item_base.html:176
#: stock/templates/stock/item_base.html:241
#: stock/templates/stock/item_base.html:249
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:780
-#: templates/js/translated/build.js:375 templates/js/translated/build.js:523
-#: templates/js/translated/build.js:714 templates/js/translated/build.js:911
-#: templates/js/translated/build.js:921 templates/js/translated/build.js:1297
-#: templates/js/translated/build.js:1658
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:778
+#: templates/js/translated/build.js:376 templates/js/translated/build.js:524
+#: templates/js/translated/build.js:715 templates/js/translated/build.js:912
+#: templates/js/translated/build.js:922 templates/js/translated/build.js:1298
+#: templates/js/translated/build.js:1669
#: templates/js/translated/model_renderers.js:99
-#: templates/js/translated/order.js:101 templates/js/translated/order.js:1142
-#: templates/js/translated/order.js:1695 templates/js/translated/order.js:1976
-#: templates/js/translated/order.js:2064 templates/js/translated/order.js:2153
-#: templates/js/translated/order.js:2267 templates/js/translated/part.js:906
-#: templates/js/translated/part.js:1884 templates/js/translated/part.js:2007
-#: templates/js/translated/part.js:2085 templates/js/translated/stock.js:391
-#: templates/js/translated/stock.js:588 templates/js/translated/stock.js:758
-#: templates/js/translated/stock.js:2802 templates/js/translated/stock.js:2904
+#: templates/js/translated/order.js:101 templates/js/translated/order.js:1229
+#: templates/js/translated/order.js:1783 templates/js/translated/order.js:2064
+#: templates/js/translated/order.js:2152 templates/js/translated/order.js:2241
+#: templates/js/translated/order.js:2355 templates/js/translated/part.js:907
+#: templates/js/translated/part.js:1885 templates/js/translated/part.js:2008
+#: templates/js/translated/part.js:2086 templates/js/translated/stock.js:390
+#: templates/js/translated/stock.js:544 templates/js/translated/stock.js:714
+#: templates/js/translated/stock.js:2758 templates/js/translated/stock.js:2860
msgid "Quantity"
msgstr "数量"
-#: build/models.py:1248
+#: build/models.py:1350
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1256
+#: build/models.py:1358
msgid "Install into"
msgstr "安装到"
-#: build/models.py:1257
+#: build/models.py:1359
msgid "Destination stock item"
msgstr ""
@@ -997,8 +997,8 @@ msgid "Enter quantity for build output"
msgstr "输入生产产出数量"
#: build/serializers.py:201 build/serializers.py:596 order/models.py:280
-#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:826
-#: stock/models.py:404 stock/models.py:1180 stock/serializers.py:305
+#: order/serializers.py:267 part/serializers.py:471 part/serializers.py:836
+#: stock/models.py:456 stock/models.py:1232 stock/serializers.py:305
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1012,8 +1012,8 @@ msgstr ""
#: build/serializers.py:225 order/serializers.py:280 order/serializers.py:907
#: stock/forms.py:78 stock/serializers.py:314
-#: templates/js/translated/order.js:524 templates/js/translated/stock.js:238
-#: templates/js/translated/stock.js:392
+#: templates/js/translated/order.js:584 templates/js/translated/stock.js:237
+#: templates/js/translated/stock.js:391
msgid "Serial Numbers"
msgstr "序列号"
@@ -1029,7 +1029,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:275 stock/api.py:549
+#: build/serializers.py:275 stock/api.py:551
msgid "The following serial numbers already exist"
msgstr ""
@@ -1041,13 +1041,13 @@ msgstr ""
#: stock/forms.py:169 stock/serializers.py:325 stock/serializers.py:788
#: stock/serializers.py:1029 stock/templates/stock/item_base.html:292
#: templates/js/translated/barcode.js:384
-#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:699
-#: templates/js/translated/build.js:1309 templates/js/translated/order.js:551
-#: templates/js/translated/order.js:1961 templates/js/translated/order.js:2072
-#: templates/js/translated/order.js:2080 templates/js/translated/order.js:2161
-#: templates/js/translated/part.js:179 templates/js/translated/stock.js:564
-#: templates/js/translated/stock.js:729 templates/js/translated/stock.js:936
-#: templates/js/translated/stock.js:1807 templates/js/translated/stock.js:2694
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:700
+#: templates/js/translated/build.js:1310 templates/js/translated/order.js:611
+#: templates/js/translated/order.js:2049 templates/js/translated/order.js:2160
+#: templates/js/translated/order.js:2168 templates/js/translated/order.js:2249
+#: templates/js/translated/part.js:179 templates/js/translated/stock.js:520
+#: templates/js/translated/stock.js:685 templates/js/translated/stock.js:892
+#: templates/js/translated/stock.js:1763 templates/js/translated/stock.js:2650
msgid "Location"
msgstr "地点"
@@ -1058,10 +1058,10 @@ msgstr ""
#: build/serializers.py:377 build/templates/build/build_base.html:142
#: build/templates/build/detail.html:63 order/models.py:579
#: order/serializers.py:290 stock/templates/stock/item_base.html:182
-#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1954
-#: templates/js/translated/order.js:656 templates/js/translated/order.js:915
-#: templates/js/translated/order.js:1371 templates/js/translated/stock.js:1782
-#: templates/js/translated/stock.js:2771 templates/js/translated/stock.js:2920
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:2007
+#: templates/js/translated/order.js:716 templates/js/translated/order.js:975
+#: templates/js/translated/order.js:1459 templates/js/translated/stock.js:1738
+#: templates/js/translated/stock.js:2727 templates/js/translated/stock.js:2876
msgid "Status"
msgstr "状态"
@@ -1073,7 +1073,7 @@ msgstr ""
msgid "Accept that stock items have not been fully allocated to this build order"
msgstr ""
-#: build/serializers.py:445 templates/js/translated/build.js:150
+#: build/serializers.py:445 templates/js/translated/build.js:151
msgid "Required stock has not been fully allocated"
msgstr "所需库存尚未完全分配"
@@ -1085,7 +1085,7 @@ msgstr ""
msgid "Accept that the required number of build outputs have not been completed"
msgstr ""
-#: build/serializers.py:461 templates/js/translated/build.js:154
+#: build/serializers.py:461 templates/js/translated/build.js:155
msgid "Required build quantity has not been completed"
msgstr "所需生产数量尚未完成"
@@ -1097,8 +1097,8 @@ msgstr ""
msgid "No build outputs have been created for this build order"
msgstr ""
-#: build/serializers.py:501 build/serializers.py:550 part/models.py:2831
-#: part/models.py:2990
+#: build/serializers.py:501 build/serializers.py:550 part/models.py:2846
+#: part/models.py:3005
msgid "BOM Item"
msgstr ""
@@ -1135,6 +1135,26 @@ msgstr ""
msgid "Allocation items must be provided"
msgstr ""
+#: build/serializers.py:730
+msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
+msgstr ""
+
+#: build/serializers.py:735
+msgid "Interchangeable Stock"
+msgstr ""
+
+#: build/serializers.py:736
+msgid "Stock items in multiple locations can be used interchangeably"
+msgstr ""
+
+#: build/serializers.py:741
+msgid "Substitute Stock"
+msgstr ""
+
+#: build/serializers.py:742
+msgid "Allow allocation of substitute parts"
+msgstr ""
+
#: build/tasks.py:98
msgid "Stock required for build order"
msgstr ""
@@ -1206,9 +1226,9 @@ msgstr ""
#: order/templates/order/order_base.html:156
#: order/templates/order/sales_order_base.html:163
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1994 templates/js/translated/order.js:932
-#: templates/js/translated/order.js:1204 templates/js/translated/order.js:1387
-#: templates/js/translated/order.js:2330 templates/js/translated/part.js:910
+#: templates/js/translated/build.js:2047 templates/js/translated/order.js:992
+#: templates/js/translated/order.js:1291 templates/js/translated/order.js:1475
+#: templates/js/translated/order.js:2418 templates/js/translated/part.js:911
msgid "Target Date"
msgstr "预计日期"
@@ -1230,7 +1250,7 @@ msgstr "逾期"
#: build/templates/build/build_base.html:163
#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
#: order/templates/order/sales_order_base.html:170
-#: templates/js/translated/build.js:1940
+#: templates/js/translated/build.js:1993
#: templates/js/translated/table_filters.js:365
msgid "Completed"
msgstr "已完成"
@@ -1242,7 +1262,7 @@ msgstr "已完成"
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:286
-#: templates/js/translated/order.js:1326 templates/js/translated/stock.js:2436
+#: templates/js/translated/order.js:1414 templates/js/translated/stock.js:2392
msgid "Sales Order"
msgstr "销售订单"
@@ -1277,7 +1297,7 @@ msgid "Stock can be taken from any available location."
msgstr ""
#: build/templates/build/detail.html:50 order/models.py:934 stock/forms.py:133
-#: templates/js/translated/order.js:657 templates/js/translated/order.js:1246
+#: templates/js/translated/order.js:717 templates/js/translated/order.js:1333
msgid "Destination"
msgstr ""
@@ -1285,13 +1305,13 @@ msgstr ""
msgid "Destination location not specified"
msgstr ""
-#: build/templates/build/detail.html:74 templates/js/translated/build.js:929
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:930
msgid "Allocated Parts"
msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:310
-#: templates/js/translated/stock.js:1796 templates/js/translated/stock.js:2927
+#: templates/js/translated/stock.js:1752 templates/js/translated/stock.js:2883
#: templates/js/translated/table_filters.js:151
#: templates/js/translated/table_filters.js:238
msgid "Batch"
@@ -1300,7 +1320,7 @@ msgstr ""
#: build/templates/build/detail.html:127
#: order/templates/order/order_base.html:143
#: order/templates/order/sales_order_base.html:157
-#: templates/js/translated/build.js:1962
+#: templates/js/translated/build.js:2015
msgid "Created"
msgstr "已创建"
@@ -1320,7 +1340,7 @@ msgstr "子生产订单"
msgid "Allocate Stock to Build"
msgstr "为生产分配库存"
-#: build/templates/build/detail.html:177 templates/js/translated/build.js:1484
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1485
msgid "Unallocate stock"
msgstr "未分配库存"
@@ -1329,111 +1349,119 @@ msgid "Unallocate Stock"
msgstr "未分配库存"
#: build/templates/build/detail.html:180
-msgid "Allocate stock to build"
-msgstr "为生产分配库存"
+msgid "Automatically allocate stock to build"
+msgstr ""
-#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
+#: build/templates/build/detail.html:181
+msgid "Auto Allocate"
+msgstr ""
+
+#: build/templates/build/detail.html:183
+msgid "Manually allocate stock to build"
+msgstr ""
+
+#: build/templates/build/detail.html:184 build/templates/build/sidebar.html:8
msgid "Allocate Stock"
msgstr "分配库存"
-#: build/templates/build/detail.html:184
+#: build/templates/build/detail.html:187
msgid "Order required parts"
msgstr "订单所需部件"
-#: build/templates/build/detail.html:185
+#: build/templates/build/detail.html:188
#: company/templates/company/detail.html:38
#: company/templates/company/detail.html:85 order/views.py:463
-#: part/templates/part/category.html:177
+#: part/templates/part/category.html:174
msgid "Order Parts"
msgstr "订购商品"
-#: build/templates/build/detail.html:197
+#: build/templates/build/detail.html:200
msgid "Untracked stock has been fully allocated for this Build Order"
msgstr "未跟踪的库存已完全分配给此生产订单"
-#: build/templates/build/detail.html:201
+#: build/templates/build/detail.html:204
msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr "未跟踪的库存尚未完全分配给此生产订单"
-#: build/templates/build/detail.html:208
+#: build/templates/build/detail.html:211
msgid "Allocate selected items"
msgstr ""
-#: build/templates/build/detail.html:218
+#: build/templates/build/detail.html:221
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:230
msgid "Incomplete Build Outputs"
msgstr "未完成的生产产出"
-#: build/templates/build/detail.html:231
+#: build/templates/build/detail.html:234
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:232
+#: build/templates/build/detail.html:235
msgid "New Build Output"
msgstr ""
-#: build/templates/build/detail.html:246
+#: build/templates/build/detail.html:249
msgid "Output Actions"
msgstr ""
-#: build/templates/build/detail.html:250
+#: build/templates/build/detail.html:253
msgid "Complete selected build outputs"
msgstr ""
-#: build/templates/build/detail.html:251
+#: build/templates/build/detail.html:254
msgid "Complete outputs"
msgstr ""
-#: build/templates/build/detail.html:253
+#: build/templates/build/detail.html:256
msgid "Delete selected build outputs"
msgstr ""
-#: build/templates/build/detail.html:254
+#: build/templates/build/detail.html:257
msgid "Delete outputs"
msgstr ""
-#: build/templates/build/detail.html:270
+#: build/templates/build/detail.html:273
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:282 build/templates/build/sidebar.html:19
+#: build/templates/build/detail.html:285 build/templates/build/sidebar.html:19
#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:107
-#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:222
+#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:217
#: part/templates/part/part_sidebar.html:55 stock/templates/stock/item.html:105
#: stock/templates/stock/stock_sidebar.html:23
msgid "Attachments"
msgstr "附件"
-#: build/templates/build/detail.html:298
+#: build/templates/build/detail.html:301
msgid "Build Notes"
msgstr "生产备注"
-#: build/templates/build/detail.html:302 build/templates/build/detail.html:478
-#: company/templates/company/detail.html:188
-#: company/templates/company/detail.html:215
+#: build/templates/build/detail.html:305 build/templates/build/detail.html:481
+#: company/templates/company/detail.html:190
+#: company/templates/company/detail.html:217
#: order/templates/order/purchase_order_detail.html:80
#: order/templates/order/purchase_order_detail.html:108
#: order/templates/order/sales_order_detail.html:127
#: order/templates/order/sales_order_detail.html:186
-#: part/templates/part/detail.html:150 stock/templates/stock/item.html:125
+#: part/templates/part/detail.html:145 stock/templates/stock/item.html:125
#: stock/templates/stock/item.html:223
msgid "Edit Notes"
msgstr "编辑备注"
-#: build/templates/build/detail.html:502
+#: build/templates/build/detail.html:519
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:503
+#: build/templates/build/detail.html:520
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:329
+#: build/templates/build/index.html:18 part/templates/part/detail.html:322
msgid "New Build Order"
msgstr "新建生产订单"
@@ -1658,7 +1686,7 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:732 part/models.py:2527 report/models.py:187
+#: common/models.py:732 part/models.py:2541 report/models.py:187
#: templates/js/translated/table_filters.js:38
#: templates/js/translated/table_filters.js:417
msgid "Template"
@@ -1668,7 +1696,7 @@ msgstr "模板"
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:739 part/models.py:951 templates/js/translated/bom.js:1300
+#: common/models.py:739 part/models.py:951 templates/js/translated/bom.js:1305
#: templates/js/translated/table_filters.js:168
#: templates/js/translated/table_filters.js:429
msgid "Assembly"
@@ -2243,7 +2271,7 @@ msgstr ""
#: common/models.py:1325 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:937 templates/js/translated/part.js:1889
+#: templates/js/translated/part.js:938 templates/js/translated/part.js:1890
msgid "Price"
msgstr "价格"
@@ -2337,14 +2365,14 @@ msgstr ""
#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49
#: order/templates/order/purchase_order_detail.html:24 order/views.py:243
-#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:210
+#: part/templates/part/import_wizard/part_upload.html:47 part/views.py:208
#: templates/patterns/wizard/upload.html:35
msgid "Upload File"
msgstr "上传文件"
#: common/views.py:94 order/views.py:244
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:211
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:209
#: templates/patterns/wizard/match_fields.html:51
msgid "Match Fields"
msgstr "匹配字段"
@@ -2472,7 +2500,7 @@ msgstr "货币"
msgid "Default currency used for this company"
msgstr "该公司使用的默认货币"
-#: company/models.py:320 company/models.py:535 stock/models.py:508
+#: company/models.py:320 company/models.py:535 stock/models.py:560
#: stock/templates/stock/item_base.html:137 templates/js/translated/bom.js:541
msgid "Base Part"
msgstr ""
@@ -2499,8 +2527,8 @@ msgstr "选择制造商"
#: company/models.py:342 company/templates/company/manufacturer_part.html:96
#: company/templates/company/supplier_part.html:105
#: templates/js/translated/company.js:533
-#: templates/js/translated/company.js:818 templates/js/translated/order.js:1124
-#: templates/js/translated/part.js:245 templates/js/translated/part.js:895
+#: templates/js/translated/company.js:818 templates/js/translated/order.js:1211
+#: templates/js/translated/part.js:245 templates/js/translated/part.js:896
msgid "MPN"
msgstr "MPN"
@@ -2529,8 +2557,8 @@ msgstr "参数名称"
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:2064 templates/js/translated/company.js:647
-#: templates/js/translated/part.js:715 templates/js/translated/stock.js:1331
+#: stock/models.py:2116 templates/js/translated/company.js:647
+#: templates/js/translated/part.js:716 templates/js/translated/stock.js:1287
msgid "Value"
msgstr "数值"
@@ -2538,10 +2566,10 @@ msgstr "数值"
msgid "Parameter value"
msgstr "参数值"
-#: company/models.py:429 part/models.py:945 part/models.py:2495
+#: company/models.py:429 part/models.py:945 part/models.py:2509
#: part/templates/part/part_base.html:288
#: templates/InvenTree/settings/settings.html:324
-#: templates/js/translated/company.js:653 templates/js/translated/part.js:721
+#: templates/js/translated/company.js:653 templates/js/translated/part.js:722
msgid "Units"
msgstr "单位"
@@ -2559,8 +2587,8 @@ msgstr ""
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:237
#: part/bom.py:265 stock/templates/stock/item_base.html:376
#: templates/js/translated/company.js:337
-#: templates/js/translated/company.js:774 templates/js/translated/order.js:898
-#: templates/js/translated/part.js:215 templates/js/translated/part.js:863
+#: templates/js/translated/company.js:774 templates/js/translated/order.js:958
+#: templates/js/translated/part.js:215 templates/js/translated/part.js:864
#: templates/js/translated/table_filters.js:388
msgid "Supplier"
msgstr "供应商"
@@ -2570,8 +2598,8 @@ msgid "Select supplier"
msgstr "选择供应商"
#: company/models.py:551 company/templates/company/supplier_part.html:91
-#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1111
-#: templates/js/translated/part.js:226 templates/js/translated/part.js:881
+#: part/bom.py:238 part/bom.py:266 templates/js/translated/order.js:1198
+#: templates/js/translated/part.js:226 templates/js/translated/part.js:882
msgid "SKU"
msgstr "SKU"
@@ -2592,7 +2620,7 @@ msgid "Supplier part description"
msgstr "供应商商品描述"
#: company/models.py:576 company/templates/company/supplier_part.html:119
-#: part/models.py:2719 part/templates/part/upload_bom.html:59
+#: part/models.py:2734 part/templates/part/upload_bom.html:59
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93 stock/serializers.py:409
msgid "Note"
@@ -2607,8 +2635,8 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr "最低收费(例如库存费)"
#: company/models.py:582 company/templates/company/supplier_part.html:112
-#: stock/models.py:532 stock/templates/stock/item_base.html:317
-#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1931
+#: stock/models.py:584 stock/templates/stock/item_base.html:317
+#: templates/js/translated/company.js:850 templates/js/translated/stock.js:1887
msgid "Packaging"
msgstr "打包"
@@ -2676,11 +2704,11 @@ msgid "Download image from URL"
msgstr "从 URL 下载图片"
#: company/templates/company/company_base.html:83 order/models.py:574
-#: order/templates/order/sales_order_base.html:115 stock/models.py:551
-#: stock/models.py:552 stock/serializers.py:683
+#: order/templates/order/sales_order_base.html:115 stock/models.py:603
+#: stock/models.py:604 stock/serializers.py:683
#: stock/templates/stock/item_base.html:269
-#: templates/js/translated/company.js:329 templates/js/translated/order.js:1348
-#: templates/js/translated/stock.js:2735
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1436
+#: templates/js/translated/stock.js:2691
#: templates/js/translated/table_filters.js:392
msgid "Customer"
msgstr "客户"
@@ -2711,7 +2739,7 @@ msgstr "创建新的供应商商品"
#: company/templates/company/detail.html:20
#: company/templates/company/manufacturer_part.html:118
-#: part/templates/part/detail.html:367
+#: part/templates/part/detail.html:360
msgid "New Supplier Part"
msgstr "新建供应商商品"
@@ -2719,14 +2747,14 @@ msgstr "新建供应商商品"
#: company/templates/company/detail.html:79
#: company/templates/company/manufacturer_part.html:127
#: company/templates/company/manufacturer_part.html:156
-#: part/templates/part/category.html:171 part/templates/part/detail.html:376
-#: part/templates/part/detail.html:405
+#: part/templates/part/category.html:168 part/templates/part/detail.html:369
+#: part/templates/part/detail.html:398
msgid "Options"
msgstr "选项"
#: company/templates/company/detail.html:37
#: company/templates/company/detail.html:84
-#: part/templates/part/category.html:177
+#: part/templates/part/category.html:174
msgid "Order parts"
msgstr "订购商品"
@@ -2748,7 +2776,7 @@ msgstr "制造商商品"
msgid "Create new manufacturer part"
msgstr "新建制造商商品"
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:395
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:388
msgid "New Manufacturer Part"
msgstr "新建制造商商品"
@@ -2762,7 +2790,7 @@ msgstr "供货商库存"
#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:85 part/templates/part/part_sidebar.html:40
+#: part/templates/part/detail.html:80 part/templates/part/part_sidebar.html:40
#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:197
#: templates/InvenTree/settings/sidebar.html:45 templates/navbar.html:47
#: users/models.py:45
@@ -2784,7 +2812,7 @@ msgstr "新建采购订单"
#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:108 part/templates/part/part_sidebar.html:44
+#: part/templates/part/detail.html:103 part/templates/part/part_sidebar.html:44
#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:217
#: templates/InvenTree/settings/sidebar.html:47 templates/navbar.html:58
#: users/models.py:46
@@ -2802,23 +2830,23 @@ msgid "New Sales Order"
msgstr "新建销售订单"
#: company/templates/company/detail.html:168
-#: templates/js/translated/build.js:1281
+#: templates/js/translated/build.js:1282
msgid "Assigned Stock"
msgstr ""
-#: company/templates/company/detail.html:184
+#: company/templates/company/detail.html:186
msgid "Company Notes"
msgstr "公司备注"
-#: company/templates/company/detail.html:384
+#: company/templates/company/detail.html:380
#: company/templates/company/manufacturer_part.html:215
-#: part/templates/part/detail.html:449
+#: part/templates/part/detail.html:442
msgid "Delete Supplier Parts?"
msgstr "删除供应商商品?"
-#: company/templates/company/detail.html:385
+#: company/templates/company/detail.html:381
#: company/templates/company/manufacturer_part.html:216
-#: part/templates/part/detail.html:450
+#: part/templates/part/detail.html:443
msgid "All selected supplier parts will be deleted"
msgstr "删除所有选定的供应商商品"
@@ -2835,7 +2863,7 @@ msgstr "制造商"
#: company/templates/company/manufacturer_part.html:35
#: company/templates/company/supplier_part.html:34
#: company/templates/company/supplier_part.html:159
-#: part/templates/part/detail.html:88 part/templates/part/part_base.html:76
+#: part/templates/part/detail.html:83 part/templates/part/part_base.html:76
msgid "Order part"
msgstr "订购商品"
@@ -2862,14 +2890,14 @@ msgid "Suppliers"
msgstr "供应商"
#: company/templates/company/manufacturer_part.html:129
-#: part/templates/part/detail.html:378
+#: part/templates/part/detail.html:371
msgid "Delete supplier parts"
msgstr "删除供应商商品"
#: company/templates/company/manufacturer_part.html:129
#: company/templates/company/manufacturer_part.html:158
#: company/templates/company/manufacturer_part.html:254
-#: part/templates/part/detail.html:378 part/templates/part/detail.html:407
+#: part/templates/part/detail.html:371 part/templates/part/detail.html:400
#: templates/js/translated/company.js:426 templates/js/translated/helpers.js:31
#: users/models.py:217
msgid "Delete"
@@ -2878,12 +2906,12 @@ msgstr "删除"
#: company/templates/company/manufacturer_part.html:143
#: company/templates/company/manufacturer_part_sidebar.html:5
#: part/templates/part/category_sidebar.html:17
-#: part/templates/part/detail.html:196 part/templates/part/part_sidebar.html:9
+#: part/templates/part/detail.html:191 part/templates/part/part_sidebar.html:9
msgid "Parameters"
msgstr "参数"
#: company/templates/company/manufacturer_part.html:147
-#: part/templates/part/detail.html:201
+#: part/templates/part/detail.html:196
#: templates/InvenTree/settings/category.html:12
#: templates/InvenTree/settings/part.html:66
msgid "New Parameter"
@@ -2894,7 +2922,7 @@ msgid "Delete parameters"
msgstr "删除参数"
#: company/templates/company/manufacturer_part.html:191
-#: part/templates/part/detail.html:908
+#: part/templates/part/detail.html:894
msgid "Add Parameter"
msgstr "添加参数"
@@ -2923,9 +2951,9 @@ msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:516
+#: company/templates/company/supplier_part.html:24 stock/models.py:568
#: stock/templates/stock/item_base.html:381
-#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1888
+#: templates/js/translated/company.js:790 templates/js/translated/stock.js:1844
msgid "Supplier Part"
msgstr "供应商商品"
@@ -2951,7 +2979,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:142
#: part/templates/part/detail.html:25 stock/templates/stock/location.html:166
-#: templates/js/translated/stock.js:368
+#: templates/js/translated/stock.js:367
msgid "New Stock Item"
msgstr ""
@@ -2961,7 +2989,7 @@ msgid "Supplier Part Orders"
msgstr "供应商商品订单"
#: company/templates/company/supplier_part.html:160
-#: part/templates/part/detail.html:89
+#: part/templates/part/detail.html:84
msgid "Order Part"
msgstr "订购商品"
@@ -2972,7 +3000,7 @@ msgstr "价格信息"
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1319
+#: part/templates/part/prices.html:271 part/views.py:1254
msgid "Add Price Break"
msgstr ""
@@ -2980,11 +3008,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1381
+#: company/templates/company/supplier_part.html:224 part/views.py:1316
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1367
+#: company/templates/company/supplier_part.html:238 part/views.py:1302
msgid "Edit Price Break"
msgstr ""
@@ -3002,10 +3030,10 @@ msgstr ""
#: stock/templates/stock/stock_app_base.html:10
#: templates/InvenTree/search.html:150
#: templates/InvenTree/settings/sidebar.html:41
-#: templates/js/translated/bom.js:553 templates/js/translated/part.js:495
-#: templates/js/translated/part.js:630 templates/js/translated/part.js:1147
-#: templates/js/translated/part.js:1308 templates/js/translated/stock.js:935
-#: templates/js/translated/stock.js:1711 templates/navbar.html:28
+#: templates/js/translated/bom.js:553 templates/js/translated/part.js:496
+#: templates/js/translated/part.js:631 templates/js/translated/part.js:1148
+#: templates/js/translated/part.js:1309 templates/js/translated/stock.js:891
+#: templates/js/translated/stock.js:1667 templates/navbar.html:28
msgid "Stock"
msgstr "库存"
@@ -3028,7 +3056,7 @@ msgstr "定价"
#: stock/templates/stock/location.html:150
#: stock/templates/stock/location.html:162
#: stock/templates/stock/location_sidebar.html:7
-#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2641
+#: templates/InvenTree/search.html:152 templates/js/translated/stock.js:2597
#: templates/stats.html:105 templates/stats.html:114 users/models.py:43
msgid "Stock Items"
msgstr "库存项"
@@ -3058,20 +3086,20 @@ msgstr "公司"
msgid "New Company"
msgstr "新建公司信息"
-#: company/views.py:129 part/views.py:591
+#: company/views.py:129 part/views.py:589
msgid "Download Image"
msgstr "下载图片"
-#: company/views.py:158 part/views.py:623
+#: company/views.py:158 part/views.py:621
msgid "Image size exceeds maximum allowable size for download"
msgstr "图像大小超过下载允许的最大尺寸"
-#: company/views.py:165 part/views.py:630
+#: company/views.py:165 part/views.py:628
#, python-brace-format
msgid "Invalid response: {code}"
msgstr "无效响应: {code}"
-#: company/views.py:174 part/views.py:639
+#: company/views.py:174 part/views.py:637
msgid "Supplied URL is not a valid image file"
msgstr "提供的 URL 不是一个有效的图片文件"
@@ -3190,7 +3218,7 @@ msgid "Company from which the items are being ordered"
msgstr "订购该商品的公司"
#: order/models.py:231 order/templates/order/order_base.html:118
-#: templates/js/translated/order.js:907
+#: templates/js/translated/order.js:967
msgid "Supplier Reference"
msgstr ""
@@ -3247,7 +3275,7 @@ msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
#: order/models.py:589 order/models.py:1084
-#: templates/js/translated/order.js:1395 templates/js/translated/order.js:1546
+#: templates/js/translated/order.js:1483 templates/js/translated/order.js:1634
msgid "Shipment Date"
msgstr ""
@@ -3292,7 +3320,7 @@ msgid "Supplier part must match supplier"
msgstr ""
#: order/models.py:891 order/models.py:982 order/models.py:1078
-#: templates/js/translated/order.js:1937 templates/js/translated/stock.js:2403
+#: templates/js/translated/order.js:2025 templates/js/translated/stock.js:2359
msgid "Order"
msgstr ""
@@ -3300,8 +3328,8 @@ msgstr ""
#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:331
-#: templates/js/translated/order.js:876 templates/js/translated/part.js:838
-#: templates/js/translated/stock.js:1865 templates/js/translated/stock.js:2716
+#: templates/js/translated/order.js:936 templates/js/translated/part.js:839
+#: templates/js/translated/stock.js:1821 templates/js/translated/stock.js:2672
msgid "Purchase Order"
msgstr ""
@@ -3310,8 +3338,8 @@ msgid "Supplier part"
msgstr "供应商商品"
#: order/models.py:920 order/templates/order/order_base.html:163
-#: templates/js/translated/order.js:654 templates/js/translated/order.js:1226
-#: templates/js/translated/part.js:932 templates/js/translated/part.js:959
+#: templates/js/translated/order.js:714 templates/js/translated/order.js:1313
+#: templates/js/translated/part.js:933 templates/js/translated/part.js:960
#: templates/js/translated/table_filters.js:312
msgid "Received"
msgstr ""
@@ -3320,9 +3348,9 @@ msgstr ""
msgid "Number of items received"
msgstr ""
-#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:645
+#: order/models.py:928 part/templates/part/prices.html:176 stock/models.py:697
#: stock/serializers.py:170 stock/templates/stock/item_base.html:338
-#: templates/js/translated/stock.js:1919
+#: templates/js/translated/stock.js:1875
msgid "Purchase Price"
msgstr "采购价格"
@@ -3456,11 +3484,11 @@ msgstr ""
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:273 templates/js/translated/order.js:514
+#: order/serializers.py:273 templates/js/translated/order.js:574
msgid "Enter batch code for incoming stock items"
msgstr ""
-#: order/serializers.py:281 templates/js/translated/order.js:525
+#: order/serializers.py:281 templates/js/translated/order.js:585
msgid "Enter serial numbers for incoming stock items"
msgstr ""
@@ -3578,7 +3606,7 @@ msgstr ""
#: order/templates/order/order_base.html:94
#: order/templates/order/sales_order_base.html:89
-#: templates/js/translated/stock.js:2459
+#: templates/js/translated/stock.js:2415
msgid "Order Status"
msgstr ""
@@ -3650,10 +3678,10 @@ msgstr "选择供应商商品"
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/bom.js:76 templates/js/translated/build.js:380
-#: templates/js/translated/build.js:528 templates/js/translated/build.js:1547
-#: templates/js/translated/order.js:602 templates/js/translated/order.js:1605
-#: templates/js/translated/stock.js:601 templates/js/translated/stock.js:769
+#: templates/js/translated/bom.js:76 templates/js/translated/build.js:381
+#: templates/js/translated/build.js:529 templates/js/translated/build.js:1558
+#: templates/js/translated/order.js:662 templates/js/translated/order.js:1693
+#: templates/js/translated/stock.js:557 templates/js/translated/stock.js:725
#: templates/patterns/wizard/match_fields.html:70
msgid "Remove row"
msgstr "移除行"
@@ -3717,8 +3745,8 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:940 templates/js/translated/order.js:1403
-#: templates/js/translated/order.js:1533
+#: templates/js/translated/order.js:1000 templates/js/translated/order.js:1491
+#: templates/js/translated/order.js:1621
msgid "Items"
msgstr ""
@@ -3752,9 +3780,9 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:27
-#: order/templates/order/purchase_order_detail.html:182
+#: order/templates/order/purchase_order_detail.html:166
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:245
+#: order/templates/order/sales_order_detail.html:233
msgid "Add Line Item"
msgstr ""
@@ -3794,7 +3822,7 @@ msgid "This Sales Order has not been fully allocated"
msgstr ""
#: order/templates/order/sales_order_base.html:122
-#: templates/js/translated/order.js:1361
+#: templates/js/translated/order.js:1449
msgid "Customer Reference"
msgstr ""
@@ -3827,7 +3855,7 @@ msgid "Pending Shipments"
msgstr ""
#: order/templates/order/sales_order_detail.html:48
-#: templates/js/translated/bom.js:945 templates/js/translated/build.js:1465
+#: templates/js/translated/bom.js:943 templates/js/translated/build.js:1466
msgid "Actions"
msgstr ""
@@ -3902,31 +3930,31 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:499
+#: part/api.py:502
msgid "Valid"
msgstr ""
-#: part/api.py:500
+#: part/api.py:503
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/api.py:505
+#: part/api.py:508
msgid "This option must be selected"
msgstr ""
-#: part/api.py:847
+#: part/api.py:866
msgid "Must be greater than zero"
msgstr "必须大于0"
-#: part/api.py:851
+#: part/api.py:870
msgid "Must be a valid quantity"
msgstr "必须是有效的数量"
-#: part/api.py:866
+#: part/api.py:885
msgid "Specify location for initial part stock"
msgstr "指定初始初始商品仓储地点"
-#: part/api.py:897 part/api.py:901 part/api.py:916 part/api.py:920
+#: part/api.py:916 part/api.py:920 part/api.py:935 part/api.py:939
msgid "This field is required"
msgstr "此字段为必填"
@@ -3944,7 +3972,7 @@ msgid "Available Stock"
msgstr "可用库存"
#: part/bom.py:128 part/templates/part/part_base.html:203
-#: templates/js/translated/part.js:1323
+#: templates/js/translated/part.js:1324
msgid "On Order"
msgstr ""
@@ -3976,7 +4004,7 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr "此类别商品的默认关键字"
-#: part/models.py:97 part/models.py:2571 part/templates/part/category.html:15
+#: part/models.py:97 part/models.py:2585 part/templates/part/category.html:15
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "商品类别"
@@ -3993,7 +4021,7 @@ msgstr "商品类别"
#: part/templates/part/category_sidebar.html:9
#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:82
#: templates/InvenTree/settings/sidebar.html:37
-#: templates/js/translated/part.js:1685 templates/navbar.html:21
+#: templates/js/translated/part.js:1686 templates/navbar.html:21
#: templates/stats.html:92 templates/stats.html:101 users/models.py:41
msgid "Parts"
msgstr "商品"
@@ -4023,7 +4051,7 @@ msgstr ""
msgid "Duplicate IPN not allowed in part settings"
msgstr "在商品设置中不允许重复的IPN"
-#: part/models.py:803 part/models.py:2624
+#: part/models.py:803 part/models.py:2638
msgid "Part name"
msgstr "商品名称"
@@ -4056,11 +4084,11 @@ msgstr "关键词"
msgid "Part keywords to improve visibility in search results"
msgstr "提高搜索结果可见性的关键字"
-#: part/models.py:841 part/models.py:2321 part/models.py:2570
+#: part/models.py:841 part/models.py:2335 part/models.py:2584
#: part/templates/part/part_base.html:265
#: part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:223
-#: templates/js/translated/part.js:1290
+#: templates/js/translated/part.js:1291
msgid "Category"
msgstr "类别"
@@ -4069,8 +4097,8 @@ msgid "Part category"
msgstr "商品类别"
#: part/models.py:847 part/templates/part/part_base.html:274
-#: templates/js/translated/part.js:618 templates/js/translated/part.js:1243
-#: templates/js/translated/stock.js:1683
+#: templates/js/translated/part.js:619 templates/js/translated/part.js:1244
+#: templates/js/translated/stock.js:1639
msgid "IPN"
msgstr ""
@@ -4083,7 +4111,7 @@ msgid "Part revision or version number"
msgstr "商品版本号"
#: part/models.py:855 part/templates/part/part_base.html:281
-#: report/models.py:200 templates/js/translated/part.js:622
+#: report/models.py:200 templates/js/translated/part.js:623
msgid "Revision"
msgstr ""
@@ -4175,301 +4203,309 @@ msgstr "新建用户"
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2371
+#: part/models.py:2385
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2388
+#: part/models.py:2402
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2408 templates/js/translated/part.js:1736
-#: templates/js/translated/stock.js:1311
+#: part/models.py:2422 templates/js/translated/part.js:1737
+#: templates/js/translated/stock.js:1267
msgid "Test Name"
msgstr ""
-#: part/models.py:2409
+#: part/models.py:2423
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2414
+#: part/models.py:2428
msgid "Test Description"
msgstr ""
-#: part/models.py:2415
+#: part/models.py:2429
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2420 templates/js/translated/part.js:1745
+#: part/models.py:2434 templates/js/translated/part.js:1746
#: templates/js/translated/table_filters.js:276
msgid "Required"
msgstr ""
-#: part/models.py:2421
+#: part/models.py:2435
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2426 templates/js/translated/part.js:1753
+#: part/models.py:2440 templates/js/translated/part.js:1754
msgid "Requires Value"
msgstr ""
-#: part/models.py:2427
+#: part/models.py:2441
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2432 templates/js/translated/part.js:1760
+#: part/models.py:2446 templates/js/translated/part.js:1761
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2433
+#: part/models.py:2447
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2444
+#: part/models.py:2458
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2480
+#: part/models.py:2494
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2488
+#: part/models.py:2502
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2495
+#: part/models.py:2509
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2525
+#: part/models.py:2539
msgid "Parent Part"
msgstr ""
-#: part/models.py:2527 part/models.py:2576 part/models.py:2577
+#: part/models.py:2541 part/models.py:2590 part/models.py:2591
#: templates/InvenTree/settings/settings.html:218
msgid "Parameter Template"
msgstr "参数模板"
-#: part/models.py:2529
+#: part/models.py:2543
msgid "Data"
msgstr ""
-#: part/models.py:2529
+#: part/models.py:2543
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2581 templates/InvenTree/settings/settings.html:227
+#: part/models.py:2595 templates/InvenTree/settings/settings.html:227
msgid "Default Value"
msgstr "默认值"
-#: part/models.py:2582
+#: part/models.py:2596
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2616
+#: part/models.py:2630
msgid "Part ID or part name"
msgstr ""
-#: part/models.py:2619 templates/js/translated/model_renderers.js:182
+#: part/models.py:2633 templates/js/translated/model_renderers.js:182
msgid "Part ID"
msgstr "商品ID"
-#: part/models.py:2620
+#: part/models.py:2634
msgid "Unique part ID value"
msgstr ""
-#: part/models.py:2623
+#: part/models.py:2637
msgid "Part Name"
msgstr ""
-#: part/models.py:2627
+#: part/models.py:2641
msgid "Part IPN"
msgstr ""
-#: part/models.py:2628
+#: part/models.py:2642
msgid "Part IPN value"
msgstr ""
-#: part/models.py:2631
+#: part/models.py:2645
msgid "Level"
msgstr ""
-#: part/models.py:2632
+#: part/models.py:2646
msgid "BOM level"
msgstr ""
-#: part/models.py:2692
+#: part/models.py:2707
msgid "Select parent part"
msgstr ""
-#: part/models.py:2700
+#: part/models.py:2715
msgid "Sub part"
msgstr ""
-#: part/models.py:2701
+#: part/models.py:2716
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2707
+#: part/models.py:2722
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2709 part/templates/part/upload_bom.html:58
-#: templates/js/translated/bom.js:791 templates/js/translated/bom.js:865
+#: part/models.py:2724 part/templates/part/upload_bom.html:58
+#: templates/js/translated/bom.js:789 templates/js/translated/bom.js:863
#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr "可选项"
-#: part/models.py:2709
+#: part/models.py:2724
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2712 part/templates/part/upload_bom.html:55
+#: part/models.py:2727 part/templates/part/upload_bom.html:55
msgid "Overage"
msgstr ""
-#: part/models.py:2713
+#: part/models.py:2728
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2716
+#: part/models.py:2731
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2719
+#: part/models.py:2734
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2721
+#: part/models.py:2736
msgid "Checksum"
msgstr ""
-#: part/models.py:2721
+#: part/models.py:2736
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2725 part/templates/part/upload_bom.html:57
-#: templates/js/translated/bom.js:882
+#: part/models.py:2740 part/templates/part/upload_bom.html:57
+#: templates/js/translated/bom.js:880
#: templates/js/translated/table_filters.js:68
#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr "继承项"
-#: part/models.py:2726
+#: part/models.py:2741
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2731 part/templates/part/upload_bom.html:56
-#: templates/js/translated/bom.js:874
+#: part/models.py:2746 part/templates/part/upload_bom.html:56
+#: templates/js/translated/bom.js:872
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2732
+#: part/models.py:2747
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2817 stock/models.py:394
+#: part/models.py:2832 stock/models.py:446
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2826 part/models.py:2828
+#: part/models.py:2841 part/models.py:2843
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2957
+#: part/models.py:2972
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2979
+#: part/models.py:2994
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2991
+#: part/models.py:3006
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2999
+#: part/models.py:3014
msgid "Substitute part"
msgstr ""
-#: part/models.py:3010
+#: part/models.py:3025
msgid "Part 1"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3029
msgid "Part 2"
msgstr ""
-#: part/models.py:3014
+#: part/models.py:3029
msgid "Select Related Part"
msgstr ""
-#: part/models.py:3046
+#: part/models.py:3061
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
-#: part/serializers.py:667
+#: part/serializers.py:670
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:678
+#: part/serializers.py:681
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:679
+#: part/serializers.py:682
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:684
+#: part/serializers.py:687
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:685
+#: part/serializers.py:688
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:690
+#: part/serializers.py:693
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:691
+#: part/serializers.py:694
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:734
+#: part/serializers.py:699
+msgid "Copy Substitute Parts"
+msgstr ""
+
+#: part/serializers.py:700
+msgid "Copy substitute parts when duplicate BOM items"
+msgstr ""
+
+#: part/serializers.py:744
msgid "Clear Existing BOM"
msgstr ""
-#: part/serializers.py:735
+#: part/serializers.py:745
msgid "Delete existing BOM items before uploading"
msgstr ""
-#: part/serializers.py:762
+#: part/serializers.py:772
msgid "No part column specified"
msgstr ""
-#: part/serializers.py:805
+#: part/serializers.py:815
msgid "Multiple matching parts found"
msgstr ""
-#: part/serializers.py:808
+#: part/serializers.py:818
msgid "No matching part found"
msgstr ""
-#: part/serializers.py:811
+#: part/serializers.py:821
msgid "Part is not designated as a component"
msgstr ""
-#: part/serializers.py:820
+#: part/serializers.py:830
msgid "Quantity not provided"
msgstr ""
-#: part/serializers.py:828
+#: part/serializers.py:838
msgid "Invalid quantity"
msgstr ""
-#: part/serializers.py:847
+#: part/serializers.py:857
msgid "At least one BOM item is required"
msgstr ""
@@ -4496,7 +4532,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:279
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:274
msgid "BOM actions"
msgstr ""
@@ -4548,7 +4584,7 @@ msgstr "类别路径"
msgid "Top level part category"
msgstr ""
-#: part/templates/part/category.html:114 part/templates/part/category.html:205
+#: part/templates/part/category.html:114 part/templates/part/category.html:202
#: part/templates/part/category_sidebar.html:7
msgid "Subcategories"
msgstr "子类别"
@@ -4557,55 +4593,51 @@ msgstr "子类别"
msgid "Parts (Including subcategories)"
msgstr "商品 (包括子类别)"
-#: part/templates/part/category.html:156
-msgid "Export Part Data"
-msgstr "导出商品数据"
-
-#: part/templates/part/category.html:157 part/templates/part/category.html:181
-msgid "Export"
-msgstr "导出"
-
-#: part/templates/part/category.html:160
+#: part/templates/part/category.html:157
msgid "Create new part"
msgstr "新建商品"
-#: part/templates/part/category.html:161 templates/js/translated/bom.js:365
+#: part/templates/part/category.html:158 templates/js/translated/bom.js:365
msgid "New Part"
msgstr "新商品"
-#: part/templates/part/category.html:175
+#: part/templates/part/category.html:172
msgid "Set category"
msgstr "设置类别"
-#: part/templates/part/category.html:175
+#: part/templates/part/category.html:172
msgid "Set Category"
msgstr "设置类别"
-#: part/templates/part/category.html:179
+#: part/templates/part/category.html:176
msgid "Print Labels"
msgstr "打印标签"
-#: part/templates/part/category.html:181
+#: part/templates/part/category.html:178
+msgid "Export"
+msgstr "导出"
+
+#: part/templates/part/category.html:178
msgid "Export Data"
msgstr "导出数据"
-#: part/templates/part/category.html:195
+#: part/templates/part/category.html:192
msgid "Part Parameters"
msgstr "商品参数"
-#: part/templates/part/category.html:288
+#: part/templates/part/category.html:285
msgid "Create Part Category"
msgstr "创建商品类别"
-#: part/templates/part/category.html:315
+#: part/templates/part/category.html:305
msgid "Create Part"
msgstr "创建商品"
-#: part/templates/part/category.html:318
+#: part/templates/part/category.html:308
msgid "Create another part after this one"
msgstr ""
-#: part/templates/part/category.html:319
+#: part/templates/part/category.html:309
msgid "Part created successfully"
msgstr ""
@@ -4676,155 +4708,150 @@ msgstr ""
msgid "Part Stock"
msgstr "商品库存"
-#: part/templates/part/detail.html:33
-#, python-format
-msgid "Showing stock for all variants of %(full_name)s"
-msgstr ""
-
-#: part/templates/part/detail.html:43
+#: part/templates/part/detail.html:38
msgid "Part Stock Allocations"
msgstr ""
-#: part/templates/part/detail.html:60
+#: part/templates/part/detail.html:55
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:65
+#: part/templates/part/detail.html:60
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:122
+#: part/templates/part/detail.html:117
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:168
+#: part/templates/part/detail.html:163
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:172
+#: part/templates/part/detail.html:167
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:173
+#: part/templates/part/detail.html:168
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:200
+#: part/templates/part/detail.html:195
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:237 part/templates/part/part_sidebar.html:52
+#: part/templates/part/detail.html:232 part/templates/part/part_sidebar.html:52
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:241 part/templates/part/detail.html:242
+#: part/templates/part/detail.html:236 part/templates/part/detail.html:237
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:262 part/templates/part/part_sidebar.html:18
+#: part/templates/part/detail.html:257 part/templates/part/part_sidebar.html:18
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:267
+#: part/templates/part/detail.html:262
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:271 templates/js/translated/bom.js:283
+#: part/templates/part/detail.html:266 templates/js/translated/bom.js:283
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:273
+#: part/templates/part/detail.html:268
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:283
+#: part/templates/part/detail.html:278
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:285 templates/js/translated/part.js:272
+#: part/templates/part/detail.html:279 templates/js/translated/part.js:272
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:287
+#: part/templates/part/detail.html:280
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:292
+#: part/templates/part/detail.html:285
msgid "New BOM Item"
msgstr ""
-#: part/templates/part/detail.html:293
+#: part/templates/part/detail.html:286
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:306
+#: part/templates/part/detail.html:299
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:323
+#: part/templates/part/detail.html:316
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:348
+#: part/templates/part/detail.html:341
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:363
+#: part/templates/part/detail.html:356
msgid "Part Suppliers"
msgstr "商品供应商"
-#: part/templates/part/detail.html:391
+#: part/templates/part/detail.html:384
msgid "Part Manufacturers"
msgstr "商品制造商"
-#: part/templates/part/detail.html:407
+#: part/templates/part/detail.html:400
msgid "Delete manufacturer parts"
msgstr "删除制造商商品"
-#: part/templates/part/detail.html:589
+#: part/templates/part/detail.html:582
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:590
+#: part/templates/part/detail.html:583
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:639
+#: part/templates/part/detail.html:632
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:696
+#: part/templates/part/detail.html:689
msgid "Related Part"
msgstr ""
-#: part/templates/part/detail.html:704
+#: part/templates/part/detail.html:697
msgid "Add Related Part"
msgstr ""
-#: part/templates/part/detail.html:801
+#: part/templates/part/detail.html:794
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:858
+#: part/templates/part/detail.html:844
msgid "Edit Part Notes"
msgstr "编辑商品注释"
-#: part/templates/part/detail.html:971
+#: part/templates/part/detail.html:957
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:983
+#: part/templates/part/detail.html:969
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:995
+#: part/templates/part/detail.html:981
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1084
+#: part/templates/part/detail.html:1070
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4969,7 +4996,7 @@ msgstr "商品是虚拟的(不是实体零件)"
#: templates/js/translated/company.js:508
#: templates/js/translated/company.js:765
#: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:533 templates/js/translated/part.js:610
+#: templates/js/translated/part.js:534 templates/js/translated/part.js:611
msgid "Inactive"
msgstr ""
@@ -4983,7 +5010,7 @@ msgstr ""
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2356
+#: part/templates/part/part_base.html:190 templates/js/translated/order.js:2444
#: templates/js/translated/table_filters.js:193
msgid "In Stock"
msgstr ""
@@ -5000,12 +5027,12 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:903
+#: part/templates/part/part_base.html:239 templates/js/translated/bom.js:901
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1154
-#: templates/js/translated/part.js:1327
+#: part/templates/part/part_base.html:245 templates/js/translated/part.js:1155
+#: templates/js/translated/part.js:1328
msgid "Building"
msgstr ""
@@ -5057,7 +5084,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:857
+#: templates/js/translated/bom.js:855
msgid "No supplier pricing available"
msgstr ""
@@ -5177,7 +5204,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:851
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:849
msgid "Supplier Cost"
msgstr ""
@@ -5199,7 +5226,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1390
+#: part/templates/part/prices.html:215 part/views.py:1325
msgid "Add Internal Price Break"
msgstr ""
@@ -5219,9 +5246,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr "为以下商品设置类别"
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:813
-#: templates/js/translated/part.js:497 templates/js/translated/part.js:1144
-#: templates/js/translated/part.js:1331
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:811
+#: templates/js/translated/part.js:498 templates/js/translated/part.js:1145
+#: templates/js/translated/part.js:1332
msgid "No Stock"
msgstr ""
@@ -5275,100 +5302,100 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:172
+#: part/templatetags/inventree_extras.py:174
msgid "Unknown database"
msgstr ""
-#: part/views.py:90
+#: part/views.py:88
msgid "Set Part Category"
msgstr "设置商品类别"
-#: part/views.py:140
+#: part/views.py:138
#, python-brace-format
msgid "Set category for {n} parts"
msgstr "为 {n} 个商品设置类别"
-#: part/views.py:212
+#: part/views.py:210
msgid "Match References"
msgstr ""
-#: part/views.py:509
+#: part/views.py:507
msgid "None"
msgstr ""
-#: part/views.py:568
+#: part/views.py:566
msgid "Part QR Code"
msgstr "商品二维码"
-#: part/views.py:670
+#: part/views.py:668
msgid "Select Part Image"
msgstr "选择商品图像"
-#: part/views.py:696
+#: part/views.py:694
msgid "Updated part image"
msgstr "更新商品图像"
-#: part/views.py:699
+#: part/views.py:697
msgid "Part image not found"
msgstr "未找到商品图像"
-#: part/views.py:850
+#: part/views.py:785
msgid "Confirm Part Deletion"
msgstr "确认删除商品"
-#: part/views.py:857
+#: part/views.py:792
msgid "Part was deleted"
msgstr "商品已删除"
-#: part/views.py:866
+#: part/views.py:801
msgid "Part Pricing"
msgstr "商品价格"
-#: part/views.py:1015
+#: part/views.py:950
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1025
+#: part/views.py:960
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1032
+#: part/views.py:967
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1091 templates/js/translated/part.js:315
+#: part/views.py:1026 templates/js/translated/part.js:315
msgid "Edit Part Category"
msgstr "编辑商品类别"
-#: part/views.py:1129
+#: part/views.py:1064
msgid "Delete Part Category"
msgstr "删除商品类别"
-#: part/views.py:1135
+#: part/views.py:1070
msgid "Part category was deleted"
msgstr "商品类别已删除"
-#: part/views.py:1144
+#: part/views.py:1079
msgid "Create Category Parameter Template"
msgstr "创建类别参数模板"
-#: part/views.py:1245
+#: part/views.py:1180
msgid "Edit Category Parameter Template"
msgstr "编辑类别参数模板"
-#: part/views.py:1301
+#: part/views.py:1236
msgid "Delete Category Parameter Template"
msgstr "删除类别参数模板"
-#: part/views.py:1323
+#: part/views.py:1258
msgid "Added new price break"
msgstr ""
-#: part/views.py:1399
+#: part/views.py:1334
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1407
+#: part/views.py:1342
msgid "Delete Internal Price Break"
msgstr ""
@@ -5574,12 +5601,12 @@ msgid "Stock Item Test Report"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:556 stock/templates/stock/item_base.html:151
-#: templates/js/translated/build.js:373 templates/js/translated/build.js:521
-#: templates/js/translated/build.js:919 templates/js/translated/build.js:1295
+#: stock/models.py:608 stock/templates/stock/item_base.html:151
+#: templates/js/translated/build.js:374 templates/js/translated/build.js:522
+#: templates/js/translated/build.js:920 templates/js/translated/build.js:1296
#: templates/js/translated/model_renderers.js:95
-#: templates/js/translated/order.js:99 templates/js/translated/order.js:2062
-#: templates/js/translated/order.js:2151 templates/js/translated/stock.js:423
+#: templates/js/translated/order.js:99 templates/js/translated/order.js:2150
+#: templates/js/translated/order.js:2239 templates/js/translated/stock.js:422
msgid "Serial Number"
msgstr "序列号"
@@ -5588,19 +5615,19 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:2052
+#: stock/models.py:2104
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:2058
+#: stock/models.py:2110
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:97
#: templates/InvenTree/settings/plugin.html:50
#: templates/InvenTree/settings/plugin_settings.html:38
-#: templates/js/translated/order.js:924 templates/js/translated/stock.js:2657
+#: templates/js/translated/order.js:984 templates/js/translated/stock.js:2613
msgid "Date"
msgstr ""
@@ -5618,26 +5645,26 @@ msgid "Installed Items"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:586 templates/js/translated/stock.js:756
-#: templates/js/translated/stock.js:2910
+#: templates/js/translated/stock.js:542 templates/js/translated/stock.js:712
+#: templates/js/translated/stock.js:2866
msgid "Serial"
msgstr ""
-#: stock/api.py:501
+#: stock/api.py:503
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:508
+#: stock/api.py:510
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:533
+#: stock/api.py:535
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/forms.py:74 stock/forms.py:198 stock/models.py:613
+#: stock/forms.py:74 stock/forms.py:198 stock/models.py:665
#: stock/templates/stock/item_base.html:188
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:1791
msgid "Expiry Date"
msgstr ""
@@ -5677,228 +5704,228 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:62 stock/models.py:650
+#: stock/models.py:62 stock/models.py:702
#: stock/templates/stock/item_base.html:402
msgid "Owner"
msgstr ""
-#: stock/models.py:63 stock/models.py:651
+#: stock/models.py:63 stock/models.py:703
msgid "Select Owner"
msgstr ""
-#: stock/models.py:375
+#: stock/models.py:427
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:411
+#: stock/models.py:463
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr "商品类型 ('{pf}') 必须是 {pe}"
-#: stock/models.py:421 stock/models.py:430
+#: stock/models.py:473 stock/models.py:482
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:422
+#: stock/models.py:474
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:444
+#: stock/models.py:496
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:450
+#: stock/models.py:502
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:457
+#: stock/models.py:509
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:500
+#: stock/models.py:552
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:509
+#: stock/models.py:561
msgid "Base part"
msgstr ""
-#: stock/models.py:517
+#: stock/models.py:569
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:523 stock/templates/stock/location.html:16
+#: stock/models.py:575 stock/templates/stock/location.html:16
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr "仓储地点"
-#: stock/models.py:526
+#: stock/models.py:578
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:585
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:539 stock/templates/stock/item_base.html:277
+#: stock/models.py:591 stock/templates/stock/item_base.html:277
msgid "Installed In"
msgstr ""
-#: stock/models.py:542
+#: stock/models.py:594
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:558
+#: stock/models.py:610
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:572
+#: stock/models.py:624
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:576
+#: stock/models.py:628
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:585
+#: stock/models.py:637
msgid "Source Build"
msgstr ""
-#: stock/models.py:587
+#: stock/models.py:639
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:598
+#: stock/models.py:650
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:601
+#: stock/models.py:653
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:607
+#: stock/models.py:659
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:614
+#: stock/models.py:666
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:627
+#: stock/models.py:679
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:627
+#: stock/models.py:679
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:637 stock/templates/stock/item.html:121
+#: stock/models.py:689 stock/templates/stock/item.html:121
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:646
+#: stock/models.py:698
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:1171
+#: stock/models.py:1223
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1177
+#: stock/models.py:1229
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1183
+#: stock/models.py:1235
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1186
+#: stock/models.py:1238
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1189
+#: stock/models.py:1241
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1196
+#: stock/models.py:1248
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1267
+#: stock/models.py:1319
msgid "Stock item has been assigned to a sales order"
msgstr ""
-#: stock/models.py:1270
+#: stock/models.py:1322
msgid "Stock item is installed in another item"
msgstr ""
-#: stock/models.py:1273
+#: stock/models.py:1325
msgid "Stock item contains other items"
msgstr ""
-#: stock/models.py:1276
+#: stock/models.py:1328
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:1279
+#: stock/models.py:1331
msgid "Stock item is currently in production"
msgstr ""
-#: stock/models.py:1282
+#: stock/models.py:1334
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:1289 stock/serializers.py:832
+#: stock/models.py:1341 stock/serializers.py:832
msgid "Duplicate stock items"
msgstr ""
-#: stock/models.py:1293
+#: stock/models.py:1345
msgid "Stock items must refer to the same part"
msgstr ""
-#: stock/models.py:1297
+#: stock/models.py:1349
msgid "Stock items must refer to the same supplier part"
msgstr ""
-#: stock/models.py:1301
+#: stock/models.py:1353
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:1473
+#: stock/models.py:1525
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1972
+#: stock/models.py:2024
msgid "Entry notes"
msgstr ""
-#: stock/models.py:2029
+#: stock/models.py:2081
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:2035
+#: stock/models.py:2087
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:2053
+#: stock/models.py:2105
msgid "Test name"
msgstr ""
-#: stock/models.py:2059
+#: stock/models.py:2111
msgid "Test result"
msgstr ""
-#: stock/models.py:2065
+#: stock/models.py:2117
msgid "Test output value"
msgstr ""
-#: stock/models.py:2072
+#: stock/models.py:2124
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:2078
+#: stock/models.py:2130
msgid "Test notes"
msgstr ""
@@ -5935,7 +5962,7 @@ msgstr ""
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:363 stock/views.py:1127
+#: stock/serializers.py:363 stock/views.py:1009
msgid "Serial numbers already exist"
msgstr "序列号已存在"
@@ -6052,11 +6079,11 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:147 templates/js/translated/stock.js:3019
+#: stock/templates/stock/item.html:147 templates/js/translated/stock.js:2975
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1479
+#: stock/templates/stock/item.html:297 templates/js/translated/stock.js:1435
msgid "Add Test Result"
msgstr ""
@@ -6070,7 +6097,7 @@ msgstr ""
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:46 templates/stock_table.html:24
+#: stock/templates/stock/item_base.html:46 templates/stock_table.html:21
msgid "Scan to Location"
msgstr ""
@@ -6083,15 +6110,15 @@ msgid "Stock adjustment actions"
msgstr ""
#: stock/templates/stock/item_base.html:69
-#: stock/templates/stock/location.html:52 templates/stock_table.html:50
+#: stock/templates/stock/location.html:52 templates/stock_table.html:47
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48
+#: stock/templates/stock/item_base.html:72 templates/stock_table.html:45
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49
+#: stock/templates/stock/item_base.html:75 templates/stock_table.html:46
msgid "Remove stock"
msgstr ""
@@ -6100,11 +6127,11 @@ msgid "Serialize stock"
msgstr ""
#: stock/templates/stock/item_base.html:82
-#: stock/templates/stock/location.html:58 templates/stock_table.html:51
+#: stock/templates/stock/location.html:58 templates/stock_table.html:48
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:85 templates/stock_table.html:54
+#: stock/templates/stock/item_base.html:85 templates/stock_table.html:51
msgid "Assign to customer"
msgstr ""
@@ -6181,7 +6208,7 @@ msgid "Stale"
msgstr ""
#: stock/templates/stock/item_base.html:201
-#: templates/js/translated/stock.js:1851
+#: templates/js/translated/stock.js:1807
msgid "Last Updated"
msgstr ""
@@ -6218,7 +6245,7 @@ msgid "This stock item is serialized - it has a unique serial number and the qua
msgstr ""
#: stock/templates/stock/item_base.html:296
-#: templates/js/translated/build.js:1317
+#: templates/js/translated/build.js:1318
msgid "No location set"
msgstr "未设置仓储地点"
@@ -6320,11 +6347,11 @@ msgstr ""
msgid "Stock Locations"
msgstr "仓储地点"
-#: stock/templates/stock/location.html:185 templates/stock_table.html:30
+#: stock/templates/stock/location.html:185 templates/stock_table.html:27
msgid "Printing Actions"
msgstr "打印操作"
-#: stock/templates/stock/location.html:189 templates/stock_table.html:34
+#: stock/templates/stock/location.html:189 templates/stock_table.html:31
msgid "Print labels"
msgstr "打印标签"
@@ -6348,7 +6375,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:749
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:631
msgid "Convert Stock Item"
msgstr ""
@@ -6369,95 +6396,95 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181 templates/js/translated/stock.js:139
+#: stock/views.py:152 templates/js/translated/stock.js:138
msgid "Edit Stock Location"
msgstr "编辑仓储地点"
-#: stock/views.py:288 stock/views.py:728 stock/views.py:854 stock/views.py:1136
+#: stock/views.py:259 stock/views.py:610 stock/views.py:736 stock/views.py:1018
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:274
msgid "Stock Location QR code"
msgstr "仓储地点二维码"
-#: stock/views.py:322
+#: stock/views.py:293
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:302
msgid "Specify a valid location"
msgstr "指定一个有效仓储地点"
-#: stock/views.py:342
+#: stock/views.py:313
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:353
+#: stock/views.py:324
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:370
+#: stock/views.py:341
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:371
+#: stock/views.py:342
msgid "Check the confirmation box"
msgstr "选中确认框"
-#: stock/views.py:475
+#: stock/views.py:357
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:500
+#: stock/views.py:382
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:597 templates/js/translated/stock.js:1074
+#: stock/views.py:479 templates/js/translated/stock.js:1030
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:608
+#: stock/views.py:490
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:630 templates/js/translated/stock.js:332
+#: stock/views.py:512 templates/js/translated/stock.js:331
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:780
+#: stock/views.py:662
msgid "Create new Stock Location"
msgstr "新建仓储地点"
-#: stock/views.py:881
+#: stock/views.py:763
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1023 templates/js/translated/stock.js:312
+#: stock/views.py:905 templates/js/translated/stock.js:311
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1105
+#: stock/views.py:987
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1205
+#: stock/views.py:1087
msgid "Delete Stock Location"
msgstr "删除仓储地点"
-#: stock/views.py:1218
+#: stock/views.py:1100
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1229
+#: stock/views.py:1111
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1236
+#: stock/views.py:1118
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1245
+#: stock/views.py:1127
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -7381,14 +7408,14 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
-#: templates/js/translated/bom.js:1335
+#: templates/js/translated/bom.js:1340
msgid "Required Quantity"
msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:804 templates/js/translated/build.js:1411
-#: templates/js/translated/build.js:2057
+#: templates/js/translated/bom.js:802 templates/js/translated/build.js:1412
+#: templates/js/translated/build.js:2110
#: templates/js/translated/table_filters.js:178
msgid "Available"
msgstr "空闲"
@@ -7580,7 +7607,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:1026
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:982
msgid "Remove stock item"
msgstr ""
@@ -7635,12 +7662,12 @@ msgid "Download BOM Template"
msgstr ""
#: templates/js/translated/bom.js:252 templates/js/translated/bom.js:286
-#: templates/js/translated/order.js:369 templates/js/translated/stock.js:518
+#: templates/js/translated/order.js:429 templates/js/translated/tables.js:53
msgid "Format"
msgstr ""
#: templates/js/translated/bom.js:253 templates/js/translated/bom.js:287
-#: templates/js/translated/order.js:370 templates/js/translated/stock.js:519
+#: templates/js/translated/order.js:430
msgid "Select file format"
msgstr ""
@@ -7716,275 +7743,307 @@ msgstr ""
msgid "Edit BOM Item Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:741
+#: templates/js/translated/bom.js:739
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:745 templates/js/translated/build.js:1393
+#: templates/js/translated/bom.js:743 templates/js/translated/build.js:1394
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:750
+#: templates/js/translated/bom.js:748
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:822
+#: templates/js/translated/bom.js:820
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:837
+#: templates/js/translated/bom.js:835
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:844
+#: templates/js/translated/bom.js:842
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:893 templates/js/translated/bom.js:982
+#: templates/js/translated/bom.js:891 templates/js/translated/bom.js:980
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:953
+#: templates/js/translated/bom.js:951
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:955
+#: templates/js/translated/bom.js:953
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:957
+#: templates/js/translated/bom.js:955
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1138
+#: templates/js/translated/bom.js:957 templates/js/translated/bom.js:1143
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:961 templates/js/translated/bom.js:1121
+#: templates/js/translated/bom.js:959 templates/js/translated/bom.js:1126
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:1060 templates/js/translated/build.js:1137
+#: templates/js/translated/bom.js:1066 templates/js/translated/build.js:1138
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:1116
+#: templates/js/translated/bom.js:1121
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/bom.js:1318 templates/js/translated/build.js:1377
+#: templates/js/translated/bom.js:1323 templates/js/translated/build.js:1378
msgid "Required Part"
msgstr ""
-#: templates/js/translated/bom.js:1340
+#: templates/js/translated/bom.js:1345
msgid "Inherited from parent BOM"
msgstr ""
-#: templates/js/translated/build.js:85
+#: templates/js/translated/build.js:86
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:119
+#: templates/js/translated/build.js:120
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:140
+#: templates/js/translated/build.js:141
msgid "Build order is ready to be completed"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:146
msgid "Build Order is incomplete"
msgstr "生产订单未完成"
-#: templates/js/translated/build.js:173
+#: templates/js/translated/build.js:174
msgid "Complete Build Order"
msgstr "生产订单完成"
-#: templates/js/translated/build.js:214 templates/js/translated/stock.js:92
-#: templates/js/translated/stock.js:181
+#: templates/js/translated/build.js:215 templates/js/translated/stock.js:91
+#: templates/js/translated/stock.js:180
msgid "Next available serial number"
msgstr ""
-#: templates/js/translated/build.js:216 templates/js/translated/stock.js:94
-#: templates/js/translated/stock.js:183
+#: templates/js/translated/build.js:217 templates/js/translated/stock.js:93
+#: templates/js/translated/stock.js:182
msgid "Latest serial number"
msgstr ""
-#: templates/js/translated/build.js:225
+#: templates/js/translated/build.js:226
msgid "The Bill of Materials contains trackable parts"
msgstr ""
-#: templates/js/translated/build.js:226
+#: templates/js/translated/build.js:227
msgid "Build outputs must be generated individually"
msgstr ""
-#: templates/js/translated/build.js:234
+#: templates/js/translated/build.js:235
msgid "Trackable parts can have serial numbers specified"
msgstr "可追踪商品可以指定序列号"
-#: templates/js/translated/build.js:235
+#: templates/js/translated/build.js:236
msgid "Enter serial numbers to generate multiple single build outputs"
msgstr ""
-#: templates/js/translated/build.js:242
+#: templates/js/translated/build.js:243
msgid "Create Build Output"
msgstr "创建创建生产产出"
-#: templates/js/translated/build.js:273
+#: templates/js/translated/build.js:274
msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:284
+#: templates/js/translated/build.js:285
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:293
+#: templates/js/translated/build.js:294
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:301
+#: templates/js/translated/build.js:302
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:324
+#: templates/js/translated/build.js:325
msgid "Are you sure you wish to unallocate stock items from this build?"
msgstr ""
-#: templates/js/translated/build.js:342
+#: templates/js/translated/build.js:343
msgid "Unallocate Stock Items"
msgstr ""
-#: templates/js/translated/build.js:360 templates/js/translated/build.js:508
+#: templates/js/translated/build.js:361 templates/js/translated/build.js:509
msgid "Select Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:361 templates/js/translated/build.js:509
+#: templates/js/translated/build.js:362 templates/js/translated/build.js:510
msgid "At least one build output must be selected"
msgstr ""
-#: templates/js/translated/build.js:415 templates/js/translated/build.js:563
+#: templates/js/translated/build.js:416 templates/js/translated/build.js:564
msgid "Output"
msgstr ""
-#: templates/js/translated/build.js:431
+#: templates/js/translated/build.js:432
msgid "Complete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:576
+#: templates/js/translated/build.js:577
msgid "Delete Build Outputs"
msgstr ""
-#: templates/js/translated/build.js:665
+#: templates/js/translated/build.js:666
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:703 templates/js/translated/order.js:1965
+#: templates/js/translated/build.js:704 templates/js/translated/order.js:2053
msgid "Location not specified"
msgstr "未指定仓储地点"
-#: templates/js/translated/build.js:885
+#: templates/js/translated/build.js:886
msgid "No active build outputs found"
msgstr ""
-#: templates/js/translated/build.js:1334 templates/js/translated/build.js:2068
-#: templates/js/translated/order.js:2099
+#: templates/js/translated/build.js:1335 templates/js/translated/build.js:2121
+#: templates/js/translated/order.js:2187
msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1336 templates/js/translated/build.js:2069
-#: templates/js/translated/order.js:2100
+#: templates/js/translated/build.js:1337 templates/js/translated/build.js:2122
+#: templates/js/translated/order.js:2188
msgid "Delete stock allocation"
msgstr ""
-#: templates/js/translated/build.js:1354
+#: templates/js/translated/build.js:1355
msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:1364
+#: templates/js/translated/build.js:1365
msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:1389
+#: templates/js/translated/build.js:1390
msgid "Substitute parts available"
msgstr ""
-#: templates/js/translated/build.js:1406
+#: templates/js/translated/build.js:1407
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:1416 templates/js/translated/build.js:1656
-#: templates/js/translated/build.js:2064 templates/js/translated/order.js:2366
+#: templates/js/translated/build.js:1417 templates/js/translated/build.js:1667
+#: templates/js/translated/build.js:2117 templates/js/translated/order.js:2454
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:1472 templates/js/translated/order.js:2446
+#: templates/js/translated/build.js:1473 templates/js/translated/order.js:2534
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:1476 templates/stock_table.html:53
+#: templates/js/translated/build.js:1477 templates/stock_table.html:50
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:1479 templates/js/translated/order.js:2439
+#: templates/js/translated/build.js:1480 templates/js/translated/order.js:2527
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:1558 templates/js/translated/order.js:1616
-msgid "Specify stock allocation quantity"
-msgstr ""
-
-#: templates/js/translated/build.js:1629 templates/js/translated/label.js:134
-#: templates/js/translated/order.js:1667 templates/js/translated/report.js:225
+#: templates/js/translated/build.js:1519 templates/js/translated/label.js:134
+#: templates/js/translated/order.js:1755 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr "选择商品"
-#: templates/js/translated/build.js:1630 templates/js/translated/order.js:1668
+#: templates/js/translated/build.js:1520 templates/js/translated/order.js:1756
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:1644 templates/js/translated/order.js:1682
+#: templates/js/translated/build.js:1569 templates/js/translated/order.js:1704
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:1640
+msgid "All Parts Allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:1641
+msgid "All selected parts have been fully allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:1655 templates/js/translated/order.js:1770
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:1673 templates/js/translated/order.js:1717
+#: templates/js/translated/build.js:1684 templates/js/translated/order.js:1805
msgid "Confirm stock allocation"
msgstr "确认库存分配"
-#: templates/js/translated/build.js:1674
+#: templates/js/translated/build.js:1685
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1685 templates/js/translated/order.js:1730
+#: templates/js/translated/build.js:1696 templates/js/translated/order.js:1818
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1757 templates/js/translated/order.js:1807
+#: templates/js/translated/build.js:1768 templates/js/translated/order.js:1895
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1875
+#: templates/js/translated/build.js:1865
+msgid "Automatic Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1866
+msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines"
+msgstr ""
+
+#: templates/js/translated/build.js:1868
+msgid "If a location is specifed, stock will only be allocated from that location"
+msgstr ""
+
+#: templates/js/translated/build.js:1869
+msgid "If stock is considered interchangeable, it will be allocated from the first location it is found"
+msgstr ""
+
+#: templates/js/translated/build.js:1870
+msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found"
+msgstr ""
+
+#: templates/js/translated/build.js:1890
+msgid "Allocate Stock Items"
+msgstr ""
+
+#: templates/js/translated/build.js:1928
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1892 templates/js/translated/part.js:1235
-#: templates/js/translated/part.js:1646 templates/js/translated/stock.js:1643
-#: templates/js/translated/stock.js:2611
+#: templates/js/translated/build.js:1945 templates/js/translated/part.js:1236
+#: templates/js/translated/part.js:1647 templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:2567
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1912
+#: templates/js/translated/build.js:1965
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1976 templates/js/translated/stock.js:2823
+#: templates/js/translated/build.js:2029 templates/js/translated/stock.js:2779
msgid "No user information"
msgstr "没有用户信息"
-#: templates/js/translated/build.js:1988
+#: templates/js/translated/build.js:2041
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:2045
+#: templates/js/translated/build.js:2098
msgid "No parts allocated for"
msgstr ""
@@ -8049,34 +8108,34 @@ msgid "No manufacturer parts found"
msgstr ""
#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:517
-#: templates/js/translated/part.js:602
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:518
+#: templates/js/translated/part.js:603
msgid "Template part"
msgstr ""
#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:521
-#: templates/js/translated/part.js:606
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:522
+#: templates/js/translated/part.js:607
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:631 templates/js/translated/part.js:696
+#: templates/js/translated/company.js:631 templates/js/translated/part.js:697
msgid "No parameters found"
msgstr "无指定参数"
-#: templates/js/translated/company.js:668 templates/js/translated/part.js:738
+#: templates/js/translated/company.js:668 templates/js/translated/part.js:739
msgid "Edit parameter"
msgstr "编辑参数"
-#: templates/js/translated/company.js:669 templates/js/translated/part.js:739
+#: templates/js/translated/company.js:669 templates/js/translated/part.js:740
msgid "Delete parameter"
msgstr "删除参数"
-#: templates/js/translated/company.js:688 templates/js/translated/part.js:756
+#: templates/js/translated/company.js:688 templates/js/translated/part.js:757
msgid "Edit Parameter"
msgstr "编辑参数"
-#: templates/js/translated/company.js:699 templates/js/translated/part.js:768
+#: templates/js/translated/company.js:699 templates/js/translated/part.js:769
msgid "Delete Parameter"
msgstr "删除参数"
@@ -8085,12 +8144,12 @@ msgid "No supplier parts found"
msgstr "未找到供应商商品"
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:429
+#: templates/js/translated/filters.js:441
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:430
+#: templates/js/translated/filters.js:442
msgid "false"
msgstr ""
@@ -8098,19 +8157,23 @@ msgstr ""
msgid "Select filter"
msgstr "选择筛选项"
-#: templates/js/translated/filters.js:286
+#: templates/js/translated/filters.js:288
+msgid "Download data"
+msgstr ""
+
+#: templates/js/translated/filters.js:291
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:290
+#: templates/js/translated/filters.js:295
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:293
+#: templates/js/translated/filters.js:298
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:338
+#: templates/js/translated/filters.js:350
msgid "Create filter"
msgstr ""
@@ -8181,7 +8244,7 @@ msgid "NO"
msgstr ""
#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:1050
+#: templates/js/translated/stock.js:1006
msgid "Select Stock Items"
msgstr "选择库存项"
@@ -8354,206 +8417,214 @@ msgstr ""
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:366
+#: templates/js/translated/order.js:426
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:460
+#: templates/js/translated/order.js:520
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:461
+#: templates/js/translated/order.js:521
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:481 templates/js/translated/order.js:580
+#: templates/js/translated/order.js:541 templates/js/translated/order.js:640
msgid "Add batch code"
msgstr ""
-#: templates/js/translated/order.js:487 templates/js/translated/order.js:591
+#: templates/js/translated/order.js:547 templates/js/translated/order.js:651
msgid "Add serial numbers"
msgstr ""
-#: templates/js/translated/order.js:499
+#: templates/js/translated/order.js:559
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:563 templates/js/translated/stock.js:2263
+#: templates/js/translated/order.js:623 templates/js/translated/stock.js:2219
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:652
+#: templates/js/translated/order.js:712
msgid "Order Code"
msgstr "订单编码"
-#: templates/js/translated/order.js:653
+#: templates/js/translated/order.js:713
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:655
+#: templates/js/translated/order.js:715
msgid "Quantity to Receive"
msgstr ""
-#: templates/js/translated/order.js:674
+#: templates/js/translated/order.js:734
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:675
+#: templates/js/translated/order.js:735
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:865 templates/js/translated/part.js:809
+#: templates/js/translated/order.js:925 templates/js/translated/part.js:810
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:890 templates/js/translated/order.js:1338
+#: templates/js/translated/order.js:950 templates/js/translated/order.js:1426
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:1018 templates/js/translated/order.js:2496
+#: templates/js/translated/order.js:1074 templates/js/translated/order.js:2585
+msgid "Duplicate Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:1104 templates/js/translated/order.js:2607
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:1030 templates/js/translated/order.js:2507
+#: templates/js/translated/order.js:1117 templates/js/translated/order.js:2618
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:1073
+#: templates/js/translated/order.js:1160
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:1100 templates/js/translated/order.js:2255
+#: templates/js/translated/order.js:1187 templates/js/translated/order.js:2343
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:1154 templates/js/translated/order.js:2280
-#: templates/js/translated/part.js:1863 templates/js/translated/part.js:2074
+#: templates/js/translated/order.js:1241 templates/js/translated/order.js:2368
+#: templates/js/translated/part.js:1864 templates/js/translated/part.js:2075
msgid "Unit Price"
msgstr "单价"
-#: templates/js/translated/order.js:1169 templates/js/translated/order.js:2296
+#: templates/js/translated/order.js:1256 templates/js/translated/order.js:2384
msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:1210 templates/js/translated/order.js:2338
-#: templates/js/translated/part.js:918
+#: templates/js/translated/order.js:1297 templates/js/translated/order.js:2426
+#: templates/js/translated/part.js:919
msgid "This line item is overdue"
msgstr ""
-#: templates/js/translated/order.js:1269 templates/js/translated/part.js:964
+#: templates/js/translated/order.js:1356 templates/js/translated/part.js:965
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1273 templates/js/translated/order.js:2452
+#: templates/js/translated/order.js:1360 templates/js/translated/order.js:2540
+msgid "Duplicate line item"
+msgstr ""
+
+#: templates/js/translated/order.js:1361 templates/js/translated/order.js:2541
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:1274 templates/js/translated/order.js:2456
+#: templates/js/translated/order.js:1362 templates/js/translated/order.js:2545
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:1314
+#: templates/js/translated/order.js:1402
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1352
+#: templates/js/translated/order.js:1440
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1439
+#: templates/js/translated/order.js:1527
msgid "Edit shipment"
msgstr ""
-#: templates/js/translated/order.js:1442
+#: templates/js/translated/order.js:1530
msgid "Complete shipment"
msgstr ""
-#: templates/js/translated/order.js:1447
+#: templates/js/translated/order.js:1535
msgid "Delete shipment"
msgstr ""
-#: templates/js/translated/order.js:1467
+#: templates/js/translated/order.js:1555
msgid "Edit Shipment"
msgstr ""
-#: templates/js/translated/order.js:1484
+#: templates/js/translated/order.js:1572
msgid "Delete Shipment"
msgstr ""
-#: templates/js/translated/order.js:1518
+#: templates/js/translated/order.js:1606
msgid "No matching shipments found"
msgstr ""
-#: templates/js/translated/order.js:1528
+#: templates/js/translated/order.js:1616
msgid "Shipment Reference"
msgstr ""
-#: templates/js/translated/order.js:1552
+#: templates/js/translated/order.js:1640
msgid "Not shipped"
msgstr ""
-#: templates/js/translated/order.js:1558
+#: templates/js/translated/order.js:1646
msgid "Tracking"
msgstr ""
-#: templates/js/translated/order.js:1718
+#: templates/js/translated/order.js:1806
msgid "Allocate Stock Items to Sales Order"
msgstr ""
-#: templates/js/translated/order.js:1926
+#: templates/js/translated/order.js:2014
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:2015
+#: templates/js/translated/order.js:2103
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:2032
+#: templates/js/translated/order.js:2120
msgid "Confirm Delete Operation"
msgstr "确认删除操作"
-#: templates/js/translated/order.js:2033
+#: templates/js/translated/order.js:2121
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:2076 templates/js/translated/order.js:2165
-#: templates/js/translated/stock.js:1559
+#: templates/js/translated/order.js:2164 templates/js/translated/order.js:2253
+#: templates/js/translated/stock.js:1515
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/order.js:2084 templates/js/translated/order.js:2174
+#: templates/js/translated/order.js:2172 templates/js/translated/order.js:2262
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:2436
+#: templates/js/translated/order.js:2524
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:2442
+#: templates/js/translated/order.js:2530
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:2449 templates/js/translated/order.js:2616
+#: templates/js/translated/order.js:2537 templates/js/translated/order.js:2727
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:2460
+#: templates/js/translated/order.js:2549
msgid "Cannot be deleted as items have been shipped"
msgstr ""
-#: templates/js/translated/order.js:2463
+#: templates/js/translated/order.js:2552
msgid "Cannot be deleted as items have been allocated"
msgstr ""
-#: templates/js/translated/order.js:2522
+#: templates/js/translated/order.js:2633
msgid "Allocate Serial Numbers"
msgstr ""
-#: templates/js/translated/order.js:2624
+#: templates/js/translated/order.js:2735
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:2638
+#: templates/js/translated/order.js:2749
msgid "No matching line items"
msgstr ""
@@ -8677,117 +8748,117 @@ msgstr ""
msgid "Validated Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:481
+#: templates/js/translated/part.js:482
msgid "Copy Bill of Materials"
msgstr ""
-#: templates/js/translated/part.js:509 templates/js/translated/part.js:594
+#: templates/js/translated/part.js:510 templates/js/translated/part.js:595
msgid "Trackable part"
msgstr "可追溯商品"
-#: templates/js/translated/part.js:513 templates/js/translated/part.js:598
+#: templates/js/translated/part.js:514 templates/js/translated/part.js:599
msgid "Virtual part"
msgstr "虚拟商品"
-#: templates/js/translated/part.js:525
+#: templates/js/translated/part.js:526
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:529
+#: templates/js/translated/part.js:530
msgid "Salable part"
msgstr "可销售商品"
-#: templates/js/translated/part.js:644
+#: templates/js/translated/part.js:645
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:1034
+#: templates/js/translated/part.js:1035
msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:1058
+#: templates/js/translated/part.js:1059
msgid "Delete Part Relationship"
msgstr ""
-#: templates/js/translated/part.js:1125 templates/js/translated/part.js:1385
+#: templates/js/translated/part.js:1126 templates/js/translated/part.js:1386
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:1295
+#: templates/js/translated/part.js:1296
msgid "No category"
msgstr "没有分类"
-#: templates/js/translated/part.js:1318
+#: templates/js/translated/part.js:1319
#: templates/js/translated/table_filters.js:425
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1409 templates/js/translated/part.js:1581
-#: templates/js/translated/stock.js:2572
+#: templates/js/translated/part.js:1410 templates/js/translated/part.js:1582
+#: templates/js/translated/stock.js:2528
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1425
+#: templates/js/translated/part.js:1426
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1600 templates/js/translated/stock.js:2591
+#: templates/js/translated/part.js:1601 templates/js/translated/stock.js:2547
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1664
+#: templates/js/translated/part.js:1665
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1678 templates/js/translated/stock.js:2635
+#: templates/js/translated/part.js:1679 templates/js/translated/stock.js:2591
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1722
+#: templates/js/translated/part.js:1723
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1773 templates/js/translated/stock.js:1270
+#: templates/js/translated/part.js:1774 templates/js/translated/stock.js:1226
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1774 templates/js/translated/stock.js:1271
-#: templates/js/translated/stock.js:1517
+#: templates/js/translated/part.js:1775 templates/js/translated/stock.js:1227
+#: templates/js/translated/stock.js:1473
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1780
+#: templates/js/translated/part.js:1781
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1802
+#: templates/js/translated/part.js:1803
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1816
+#: templates/js/translated/part.js:1817
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1841
+#: templates/js/translated/part.js:1842
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1896
+#: templates/js/translated/part.js:1897
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1897
+#: templates/js/translated/part.js:1898
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1998
+#: templates/js/translated/part.js:1999
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:2017
+#: templates/js/translated/part.js:2018
msgid "Single Price Difference"
msgstr ""
@@ -8861,368 +8932,356 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/stock.js:74
+#: templates/js/translated/stock.js:73
msgid "Serialize Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:102
+#: templates/js/translated/stock.js:101
msgid "Confirm Stock Serialization"
msgstr ""
-#: templates/js/translated/stock.js:111
+#: templates/js/translated/stock.js:110
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:154
+#: templates/js/translated/stock.js:153
msgid "New Stock Location"
msgstr ""
-#: templates/js/translated/stock.js:194
+#: templates/js/translated/stock.js:193
msgid "This part cannot be serialized"
msgstr ""
-#: templates/js/translated/stock.js:233
+#: templates/js/translated/stock.js:232
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: templates/js/translated/stock.js:239
+#: templates/js/translated/stock.js:238
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: templates/js/translated/stock.js:382
+#: templates/js/translated/stock.js:381
msgid "Created new stock item"
msgstr ""
-#: templates/js/translated/stock.js:395
+#: templates/js/translated/stock.js:394
msgid "Created multiple stock items"
msgstr ""
-#: templates/js/translated/stock.js:420
+#: templates/js/translated/stock.js:419
msgid "Find Serial Number"
msgstr ""
-#: templates/js/translated/stock.js:424 templates/js/translated/stock.js:425
+#: templates/js/translated/stock.js:423 templates/js/translated/stock.js:424
msgid "Enter serial number"
msgstr ""
-#: templates/js/translated/stock.js:441
+#: templates/js/translated/stock.js:440
msgid "Enter a serial number"
msgstr ""
-#: templates/js/translated/stock.js:461
+#: templates/js/translated/stock.js:460
msgid "No matching serial number"
msgstr ""
-#: templates/js/translated/stock.js:470
+#: templates/js/translated/stock.js:469
msgid "More than one matching result found"
msgstr ""
-#: templates/js/translated/stock.js:515
-msgid "Export Stock"
-msgstr ""
-
-#: templates/js/translated/stock.js:526
-msgid "Include Sublocations"
-msgstr ""
-
-#: templates/js/translated/stock.js:527
-msgid "Include stock items in sublocations"
-msgstr ""
-
-#: templates/js/translated/stock.js:636
+#: templates/js/translated/stock.js:592
msgid "Confirm stock assignment"
msgstr ""
-#: templates/js/translated/stock.js:637
+#: templates/js/translated/stock.js:593
msgid "Assign Stock to Customer"
msgstr ""
-#: templates/js/translated/stock.js:714
+#: templates/js/translated/stock.js:670
msgid "Warning: Merge operation cannot be reversed"
msgstr ""
-#: templates/js/translated/stock.js:715
+#: templates/js/translated/stock.js:671
msgid "Some information will be lost when merging stock items"
msgstr ""
-#: templates/js/translated/stock.js:717
+#: templates/js/translated/stock.js:673
msgid "Stock transaction history will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:718
+#: templates/js/translated/stock.js:674
msgid "Supplier part information will be deleted for merged items"
msgstr ""
-#: templates/js/translated/stock.js:804
+#: templates/js/translated/stock.js:760
msgid "Confirm stock item merge"
msgstr ""
-#: templates/js/translated/stock.js:805
+#: templates/js/translated/stock.js:761
msgid "Merge Stock Items"
msgstr ""
-#: templates/js/translated/stock.js:900
+#: templates/js/translated/stock.js:856
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:901
+#: templates/js/translated/stock.js:857
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:907
+#: templates/js/translated/stock.js:863
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:908
+#: templates/js/translated/stock.js:864
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:912
+#: templates/js/translated/stock.js:868
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:913
+#: templates/js/translated/stock.js:869
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:917
+#: templates/js/translated/stock.js:873
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:918 users/models.py:213
+#: templates/js/translated/stock.js:874 users/models.py:213
msgid "Add"
msgstr "添加"
-#: templates/js/translated/stock.js:922
+#: templates/js/translated/stock.js:878
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:1011
+#: templates/js/translated/stock.js:967
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:1011
+#: templates/js/translated/stock.js:967
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:1051
+#: templates/js/translated/stock.js:1007
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:1209
+#: templates/js/translated/stock.js:1165
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:1211
+#: templates/js/translated/stock.js:1167
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:1216
+#: templates/js/translated/stock.js:1172
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:1263
+#: templates/js/translated/stock.js:1219
msgid "Pass test"
msgstr ""
-#: templates/js/translated/stock.js:1266
+#: templates/js/translated/stock.js:1222
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:1292
+#: templates/js/translated/stock.js:1248
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:1348
+#: templates/js/translated/stock.js:1304
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:1500
+#: templates/js/translated/stock.js:1456
msgid "Edit Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1522
+#: templates/js/translated/stock.js:1478
msgid "Delete Test Result"
msgstr ""
-#: templates/js/translated/stock.js:1551
+#: templates/js/translated/stock.js:1507
msgid "In production"
msgstr "正在生产"
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1511
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:1563
+#: templates/js/translated/stock.js:1519
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:1569
+#: templates/js/translated/stock.js:1525
msgid "No stock location set"
msgstr "未设置仓储地点"
-#: templates/js/translated/stock.js:1727
+#: templates/js/translated/stock.js:1683
msgid "Stock item is in production"
msgstr "库存品正在生产"
-#: templates/js/translated/stock.js:1732
+#: templates/js/translated/stock.js:1688
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:1735
+#: templates/js/translated/stock.js:1691
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:1739
+#: templates/js/translated/stock.js:1695
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:1741
+#: templates/js/translated/stock.js:1697
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:1747
+#: templates/js/translated/stock.js:1703
msgid "Serialized stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:1749
+#: templates/js/translated/stock.js:1705
msgid "Stock item has been fully allocated"
msgstr ""
-#: templates/js/translated/stock.js:1751
+#: templates/js/translated/stock.js:1707
msgid "Stock item has been partially allocated"
msgstr ""
-#: templates/js/translated/stock.js:1756
+#: templates/js/translated/stock.js:1712
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:1763
+#: templates/js/translated/stock.js:1719
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:1765
+#: templates/js/translated/stock.js:1721
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:1767
+#: templates/js/translated/stock.js:1723
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:1771
+#: templates/js/translated/stock.js:1727
#: templates/js/translated/table_filters.js:188
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:1821
+#: templates/js/translated/stock.js:1777
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1903
+#: templates/js/translated/stock.js:1859
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1941
+#: templates/js/translated/stock.js:1897
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1962 templates/js/translated/stock.js:2010
+#: templates/js/translated/stock.js:1918 templates/js/translated/stock.js:1966
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:2050
+#: templates/js/translated/stock.js:2006
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:2077
+#: templates/js/translated/stock.js:2033
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:2079
+#: templates/js/translated/stock.js:2035
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:2278
+#: templates/js/translated/stock.js:2234
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:2292
+#: templates/js/translated/stock.js:2248
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:2293
+#: templates/js/translated/stock.js:2249
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:2472
+#: templates/js/translated/stock.js:2428
msgid "Allocated Quantity"
msgstr ""
-#: templates/js/translated/stock.js:2682
+#: templates/js/translated/stock.js:2638
msgid "Details"
msgstr "详情"
-#: templates/js/translated/stock.js:2707
+#: templates/js/translated/stock.js:2663
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2726
+#: templates/js/translated/stock.js:2682
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2745
+#: templates/js/translated/stock.js:2701
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2763
+#: templates/js/translated/stock.js:2719
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:2786
+#: templates/js/translated/stock.js:2742
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:2794
+#: templates/js/translated/stock.js:2750
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:2835
+#: templates/js/translated/stock.js:2791
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2836
+#: templates/js/translated/stock.js:2792
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:2887
+#: templates/js/translated/stock.js:2843
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:2938
+#: templates/js/translated/stock.js:2894
msgid "Uninstall Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2974
+#: templates/js/translated/stock.js:2930
msgid "Install another stock item into this item"
msgstr ""
-#: templates/js/translated/stock.js:2975
+#: templates/js/translated/stock.js:2931
msgid "Stock items can only be installed if they meet the following criteria"
msgstr ""
-#: templates/js/translated/stock.js:2977
+#: templates/js/translated/stock.js:2933
msgid "The Stock Item links to a Part which is the BOM for this Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:2978
+#: templates/js/translated/stock.js:2934
msgid "The Stock Item is currently available in stock"
msgstr ""
-#: templates/js/translated/stock.js:2979
+#: templates/js/translated/stock.js:2935
msgid "The Stock Item is serialized and does not belong to another item"
msgstr ""
-#: templates/js/translated/stock.js:2992
+#: templates/js/translated/stock.js:2948
msgid "Select part to install"
msgstr ""
@@ -9429,60 +9488,68 @@ msgstr ""
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:368
+#: templates/js/translated/tables.js:50
+msgid "Export Table Data"
+msgstr ""
+
+#: templates/js/translated/tables.js:54
+msgid "Select File Format"
+msgstr ""
+
+#: templates/js/translated/tables.js:433
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:371
+#: templates/js/translated/tables.js:436
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:376
+#: templates/js/translated/tables.js:441
msgid "Showing all rows"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:443
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:382 templates/search_form.html:6
+#: templates/js/translated/tables.js:447 templates/search_form.html:6
#: templates/search_form.html:7
msgid "Search"
msgstr "搜索"
-#: templates/js/translated/tables.js:385
+#: templates/js/translated/tables.js:450
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:388
+#: templates/js/translated/tables.js:453
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:391
+#: templates/js/translated/tables.js:456
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:394
+#: templates/js/translated/tables.js:459
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:397
+#: templates/js/translated/tables.js:462
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:400
+#: templates/js/translated/tables.js:465
msgid "All"
msgstr ""
@@ -9586,63 +9653,59 @@ msgstr "电子邮件设置"
msgid "Email settings not configured"
msgstr "电子邮件设置未配置"
-#: templates/stock_table.html:14
-msgid "Export Stock Information"
-msgstr ""
-
-#: templates/stock_table.html:20
+#: templates/stock_table.html:17
msgid "Barcode Actions"
msgstr ""
-#: templates/stock_table.html:36
+#: templates/stock_table.html:33
msgid "Print test reports"
msgstr "打印测试报表"
-#: templates/stock_table.html:43
+#: templates/stock_table.html:40
msgid "Stock Options"
msgstr ""
-#: templates/stock_table.html:48
+#: templates/stock_table.html:45
msgid "Add to selected stock items"
msgstr ""
-#: templates/stock_table.html:49
+#: templates/stock_table.html:46
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:50
+#: templates/stock_table.html:47
msgid "Stocktake selected stock items"
msgstr ""
-#: templates/stock_table.html:51
+#: templates/stock_table.html:48
msgid "Move selected stock items"
msgstr ""
-#: templates/stock_table.html:52
+#: templates/stock_table.html:49
msgid "Merge selected stock items"
msgstr ""
-#: templates/stock_table.html:52
+#: templates/stock_table.html:49
msgid "Merge stock"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:50
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:52
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:52
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:55
msgid "Delete selected items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:55
msgid "Delete stock"
msgstr ""